c语言从文件中读取数据到结构体数组中 - 爱问答

(爱问答)

c语言从文件中读取数据到结构体数组中

见图。。。急啊。。。c语言从文件中读取数据到结构体数组中

根据txt文件中数据的格式,可以用fscanf把数据读取到数组中。

下面以一种最基本的况为例,给出参考代码。

假定结构体格式为

12345struct test{    int i;    float f;};

文本文件约定,第一行为存储结构体总数,从第二行起,每行为一个结构体的数据。每个结构体内数据以空格分隔。

样本文件in.txt如下:

1234541 2.03 4.05 6.07 8.0

那么代码可以写作:

123456789101112131415161718192021222324252627282930313233#include <stdio.h>#include <stdlib.h>int main(){    struct test *v = NULL;    int n, i;    FILE *fp;         fp = fopen("in.txt", "r");//打开文件    if(fp == NULL)return -1; //文件打开失败         fscanf(fp, "%d", &n); //读取结构体数据总数。    if(n <= 0)//数据总数非法    {        fclose(fp);        return -2;    }    v = (struct test*)malloc(sizeof(*v) * n); // 分配内存空间。    for(i = 0; i < n; i ++)        if(fscanf(fp, "%d%f", &v[i].i, &v[i].f) != 2) break;//读取数据。         //将读取到的数据输出。    printf("文件中预计有数据%d个,实际读到%d个 ", n, i);    n = i;         for(i = 0; i < n; i ++)        printf("%d,%f ", v[i].i, v[i].f);             fclose(fp);//关闭文件    free(v);//释放内存             return 0;}

在以上文本文件及程序下,运行后的结果为:

12345文件中预计有数据4个,实际读到4个1,2.0000003,4.0000005,6.000000


你应该自己做,遇到问题再提问

相关标签:c语言

下一篇:现代通信技术如何描述交换系统的链接特性

上一篇:设计函数doublehello(doublex,intn);

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?