C语言,怎么利用dat文件,组织数据存进去,然后又从里面拿出来用啊

 我来答
仙女Cloudy
2018-07-03
知道答主
回答量:1
采纳率:0%
帮助的人:858
引用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); /*返回读取成功的数目*/}
展开全部
if ((file = fopen(DATA_FILENAME, "rb") == NULL) )
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
piestkj
推荐于2017-10-02 · TA获得超过928个赞
知道小有建树答主
回答量:820
采纳率:0%
帮助的人:615万
展开全部
#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); /*返回读取成功的数目*/
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式