C语言,怎么利用dat文件,组织数据存进去,然后又从里面拿出来用啊
2个回答
引用piestkj的回答:
#include <stdio.h>struct data { ....... /* 数据内容 */};#define DATA_FILENAME "data.dat" /* 数据文件名 */int write_data(FILE *, const struct data *, int); /* 存数据 */int read_data(FILE *, struct data *, int); /* 取数据 */int main(void) { struct data *dat; /*也可以定义数组存储数据*/ FILE *file; ...... /* 在此处理数据....... */ /* 读取过程 */ if ((file = fopen(DATA_FILENAME, "rb") == NULL) { /* 打开文件失败处理...... */ } else if (read_data(file, dat, /*此处为数据总数*/) == 0) { /* 读取文件失败处理...... */ fclose(file); } else { /* 在此处理数据...... */ fclose(file); } /* 存入过程 */ if ((file = fopen(DATA_FILENAME, "wb") == NULL) { /* 打开文件失败处理...... */ } else if (write_data(file, dat, /*此处为数据总数*/) == 0) { /* 写入文件失败处理...... */ fclose(file); } else { /* 在此处理数据...... */ fclose(file); } ......}int write_data(FILE *f, const struct data *s, int n) { return fwrite(s, sizeof(struct data), n, f) == n; /*全部写入成功才返回1*/}int read_data(FILE *f, struct data *s, int n) { return fread(s, sizeof(struct data), n, f); /*返回读取成功的数目*/}
#include <stdio.h>struct data { ....... /* 数据内容 */};#define DATA_FILENAME "data.dat" /* 数据文件名 */int write_data(FILE *, const struct data *, int); /* 存数据 */int read_data(FILE *, struct data *, int); /* 取数据 */int main(void) { struct data *dat; /*也可以定义数组存储数据*/ FILE *file; ...... /* 在此处理数据....... */ /* 读取过程 */ if ((file = fopen(DATA_FILENAME, "rb") == NULL) { /* 打开文件失败处理...... */ } else if (read_data(file, dat, /*此处为数据总数*/) == 0) { /* 读取文件失败处理...... */ fclose(file); } else { /* 在此处理数据...... */ fclose(file); } /* 存入过程 */ if ((file = fopen(DATA_FILENAME, "wb") == NULL) { /* 打开文件失败处理...... */ } else if (write_data(file, dat, /*此处为数据总数*/) == 0) { /* 写入文件失败处理...... */ fclose(file); } else { /* 在此处理数据...... */ fclose(file); } ......}int write_data(FILE *f, const struct data *s, int n) { return fwrite(s, sizeof(struct data), n, f) == n; /*全部写入成功才返回1*/}int read_data(FILE *f, struct data *s, int n) { return fread(s, sizeof(struct data), n, f); /*返回读取成功的数目*/}
展开全部
if ((file = fopen(DATA_FILENAME, "rb") == NULL) )
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
struct data {
....... /* 数据内容 */
};
#define DATA_FILENAME "data.dat" /* 数据文件名 */
int write_data(FILE *, const struct data *, int); /* 存数据 */
int read_data(FILE *, struct data *, int); /* 取数据 */
int main(void) {
struct data *dat; /*也可以定义数组存储数据*/
FILE *file;
...... /* 在此处理数据....... */
/* 读取过程 */
if ((file = fopen(DATA_FILENAME, "rb") == NULL) {
/* 打开文件失败处理...... */
} else if (read_data(file, dat, /*此处为数据总数*/) == 0) {
/* 读取文件失败处理...... */
fclose(file);
} else {
/* 在此处理数据...... */
fclose(file);
}
/* 存入过程 */
if ((file = fopen(DATA_FILENAME, "wb") == NULL) {
/* 打开文件失败处理...... */
} else if (write_data(file, dat, /*此处为数据总数*/) == 0) {
/* 写入文件失败处理...... */
fclose(file);
} else {
/* 在此处理数据...... */
fclose(file);
}
......
}
int write_data(FILE *f, const struct data *s, int n) {
return fwrite(s, sizeof(struct data), n, f) == n; /*全部写入成功才返回1*/
}
int read_data(FILE *f, struct data *s, int n) {
return fread(s, sizeof(struct data), n, f); /*返回读取成功的数目*/
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询