| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4212 人关注过本帖
标题:关于结构体存储到文件中并输出
只看楼主 加入收藏
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
回复 20楼 ccc菜鸟,
乱写了一段如何将结构体数组一次性写入文件,并读出来的代码。
程序不长,自己思考怎么改你自己的代码。等老T晚上开课详解,俺是来拉二胡的

#include <stdio.h>
#include <string.h>

struct foo{
    int id;
    char name[40];
    float score;
};

void init_foo(int, const char *, float, struct foo*);//初始化结构体元素

int main()
{
    struct foo f1[2], f2[2];

    init_foo(1,"test1", 10.5f, &f1[0]);
    init_foo(2,"test2", 20.5f, &f1[1]);

    char *filename = "test.txt";
    FILE *fp;
    fp = fopen(filename, "w");
   
    if(fp != NULL)
    {
        fwrite(&f1, sizeof(struct foo), 2, fp); //写入数据块
    }

    fclose(fp);

    fp = fopen(filename, "r");
    if(fp != NULL)
    {
        fread(&f2, sizeof(struct foo), 2, fp); //读出数据块

        printf("%d, %s, %.2f\n", f2[0].id,f2[0].name,f2[0].score); //输出内容
        printf("%d, %s, %.2f\n", f2[1].id,f2[1].name,f2[1].score);
    }

    fclose(fp);

    return 0;
}

void init_foo(int a,const char *b, float c, struct foo* d)
{
    d->id = a;
    strcpy(d->name, b); //strcpy函数并不安全
    d->score = c;
}

[此贴子已经被作者于2015-11-26 15:16编辑过]


我们都在路上。。。。。
2015-11-26 15:15
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你开课也可以的

授人以渔,不授人以鱼。
2015-11-26 21:15
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
逐步来,你先测试如下代码:
程序代码:
FILE* file = fopen("test.dat", "wb");
char data[20] = "abcdefg";
fwrite(data, sizeof(char), 20, file);
fclose(file);

执行后,用记事本打开test.dat,看看,把结果截图放出来。

注意,我并没有旧式的C编译器,或别的什么标准编译器,这里所写代码要你自己编译成功并执行,我不上机实作,只看你的截图。

[此贴子已经被作者于2015-11-26 21:35编辑过]


授人以渔,不授人以鱼。
2015-11-26 21:32
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
楼主人呢?开课了,今晚教授内容,全民打灰机

[此贴子已经被作者于2015-11-26 21:34编辑过]


我们都在路上。。。。。
2015-11-26 21:33
深秋2015
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:412
专家分:1544
注 册:2015-10-13
收藏
得分:2 
以下是引用hellovfp在2015-11-26 21:33:16的发言:

楼主人呢?开课了,今晚教授内容,全民打灰机

这样插科打诨真的好吗

从此以后我都不敢抬头看
仿佛我的天空失去了颜色
2015-11-26 21:37
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
回复 25楼 深秋2015
估计楼主还木有来,俺先吹会儿水忽略俺吧

我们都在路上。。。。。
2015-11-26 21:50
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
T版,忘了切换输入法了,繁体字,繁体

我们都在路上。。。。。
2015-11-26 21:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
楼主不需要学,想要直接代码吧。

授人以渔,不授人以鱼。
2015-11-27 20:55
ccc菜鸟,
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2015-11-20
收藏
得分:0 
回复 28楼 TonyDeng
这几天在忙别的也没有上论坛,我自己搞出来了,我也没向您要代码吧?也不需要随意揣度别人您说对吧?而且您给的也是有问题的,不过还是谢谢您
2015-12-02 14:20
ccc菜鸟,
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2015-11-20
收藏
得分:0 
回复 24楼 hellovfp
谢谢您,我搞出来了。
2015-12-02 14:21
快速回复:关于结构体存储到文件中并输出
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018013 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved