phfb.net
当前位置:首页 >> C语言读取文件数据到结构体数组 >>

C语言读取文件数据到结构体数组

根据txt文件中数据的格式,可以用fscanf把数据读取到数组中。 下面以一种最基本的情况为例,给出参考代码。 假定结构体格式为 struct test{ int i; float f;};文本文件约定,第一行为存储结构体总数,从第二行起,每行为一个结构体的数据。每个...

关键问题是用 逗号分隔的 字符串 ,不能用 逗号格式 这样分开地读出来。 要用 "%[^,],%[^,],%f" 格式 才行。 另外 读参数用 &temp[n].mark 才行,你漏了 &. -------- 你先用下面程序读2行, 01010101,ABABCEVVZ,96.0 020202,EFGWE,56.0 试验成功...

#include int main() { struct test { int a; char s[10] ; double d ; } tr[3] , tw[3] ={ {1,"hello1" , 100 }, {2,"hello2" , 90}, {3,"hello3", 200} } ; //定义一个结构体数组 FILE *fp ; fp=fopen("struct.dat" , "wb" ); if ( fp == NULL...

总体写得不错,问题出在你的 fscanf和fprintf函数参数传递错误了 #include "stdio.h"#include "stdlib.h"struct s{ int id; char name[10]; int co1; int co2; int co3; int co4;};int main(){ int i=0,count; struct s st[10]; char fname[10],...

fopen("student.txt","wb") b就是二进制的意思。你用二进制形式将student.txt打开 而fwrite也是将内存中的数据不经转换直接写入文件,所以文件中保存的是二进制形式,当然看到乱码了。 你试试: if((fp1=fopen("student.txt","w"))==NULL) {prin...

代码不要截图,复制粘贴出来

FILE *fp;printf("请输入文件名,路径:"); //打开txt文件scanf("%s",filename);if((fp = fopen(filename,"r")) == NULL) {fprintf(stderr,"%s 文件打开失败!\n",filename);exit(0); } for(int i=0; i

不是读不到,而是读完最后一行后,即跳出了循环,没有打印,所以,只需要在while(){}后面添加一行,如: .....while(fgetc(fp)!=EOF) { printf("%d %d %s\n",eve[i].p,eve[i].d,eve[i].name); i++; fscanf(fp,"%d%d%s",&eve[i].p,&eve[i].d,&eve[...

读的时候 路径不对。。还有就是写入的文件是以字符的形式写入的。所以int型要转一下。。 具体如下 #include"stdio.h" #include"conio.h" #include"stdlib.h" struct node { int a; char b[2]; }; main() { FILE *p; char ch; int i=0,len=sizeof...

#include int main() { struct test { int a; char s[10] ; double d ; } tr[3] , tw[3] ={ {1,"hello1" , 100 }, {2,"hello2" , 90}, {3,"hello3", 200} } ; //定义一个结构体数组 FILE *fp ; fp=fopen("struct.dat" , "wb" ); if ( fp...

网站首页 | 网站地图
All rights reserved Powered by www.phfb.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com