c语言将文本文件读取到结构体中

在c语言中怎么将一个文本文件,如“a.txt”读取到结构体中,文本文件中一行的各个数据要用什么符号来分隔(空格?逗号?分号?还是回车?)?请说得详细点,我是初学者,最好举一个例子!
如果回答好了,我会追加20分,不然我宁愿关闭问题!
看不是很懂
我就是需要fread的
文件中的信息是直接输入的,不是通过程序输入的
不过,本诚信的原则,还是给你分吧
希望你在得到分后再帮我把问题解决完满
谢谢了!

第1个回答  2007-07-13
呵呵,满意的话要给我追加分哦!那两个例子都是我自己给你写的。
1.
#include"stdio.h"
#include"stdlib.h"
main()
{
FILE *fp;
char s[100];
if((fp=fopen("f:\\score.txt","a"))==NULL)
{
printf("Can't open destination file!\n");
exit(0);
}
printf("Please input your name:");
gets(s);
fprintf(fp,"Name:%s\t\tScore:%d\n",s,rand()%100);
fclose(fp);
printf("Your score is saved!\n");
}

2.
#include"stdio.h"
#define N 20
struct score
{
char s[20];
int a;
}d[N];
main()
{
FILE *fp;
int i,no=0;
if((fp=fopen("f:\\score.txt","r"))==NULL)
{
printf("Can't open destination file!\n");
exit(0);
}
for(i=0;i<N&&!feof(fp);i++)
{
fscanf(fp,"Name:%s\t\tScore:%d\n",d[i].s,&d[i].a);
no++;
}
fclose(fp);
for(i=0;i<no&&d[i].s[0];i++)
printf("Name:%s\t\tScore:%d\n",d[i].s,d[i].a);
}

在文件中分隔用什么随便你,但是当你用什么分隔后,在用fscanf函数的时候也要在格式控制中加入,如我用第一个程序保存了些数据在f:\\score.txt中:
Name:ytyh Score:1
Name:tytuy Score:41
Name:hjhj Score:41
由于我在第一个程序中用的是fprintf(fp,"Name:%s\t\tScore:%d\n",s,rand()%100);故在第二个程序中就心须用fscanf(fp,"Name:%s\t\tScore:%d\n",d[i].s,&d[i].a);
在ASCII文件中我只知道这样,但在二进制文件中就没有这么麻烦,直接用fread就行。本回答被提问者采纳

c语言,怎么从文件读取数据到结构体,求助
//计算文件中数据的行数 while(!feof(fp)){c=fgetc(fp);if(c=='\n')r_n++;} printf("r_n=%d\n",r_n);rewind(fp);//将指针重置到第一行 structdata*line1=NULL;line1=(structdata*)malloc(sizeof(structdata)*(r_n+1));//创建...

c语言入门代码009 从 txt 文本文件中加载数据到结构体数组
第一步,通过fopen函数以读取模式打开文件,准备从文件头部获取数据。第二步,文件中逐个读取结构体字段,并将数据保存到数组中,直到文件结尾。feof函数用于检测文件是否达到末尾,判断是否需要结束循环。在读取数据时,使用fscanf函数,与scanf相似,但添加了文件指针参数,用于在文件内容中执行读取操作。数据...

C语言怎样将.txt文件中的数据写入到结构体中去
int main(){ FILE *data;\/\/要读取的文件指针 int i=0;\/\/结构题数组移动 struct wordUnit words[DATALEN];if((data=fopen("data3.txt","r"))==NULL){ printf("Can not open file\\n");return 0;} while(!feof(data)){ \/\/原txt文档的数据之间是以空格隔开的 } fclose(data);for(in...

C语言 如何把文件里面的内容存到结构体数组里面
需要使用文件操作函数fwrite和fread。读物文件并写入结构体,同时保存文件的代码如下:1、写 FILE* fp = fopen("card.dat", "wb");for(int i = 0; i < counts; i++){fwrite(&card[i], sizeof(struct card), 1, fp);}fclose(fp);2、读 FILE* fp = fopen("card.dat", "rb");in...

C语言中怎么将文件的数据读入到结构体数组中 比如 做一个字典 将中英词...
这个就要看你的数据组织了,比如说一个结构体 typedef struct { int index;char *word;char *translate;}dictionary;那么你文件里面的也就要按这个顺序排列,然后再用 dictionary dc;fscanf(fp,"%d%s%s",&dc.index,dc.word,dc.translate);只要按顺序就能正确读取出来的。

如何将txt文件中的学生信息读取到结构体数组中,C语言
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<12; i++) \/\/循环读取{ fscanf(fp,"%s%s%f",StuInfo[i].I...

C语言字符串怎么读到结构中??
使用memcpy函数copy进去就行了啊 另外如果数据结构相符的话直接用结构体指针指向这行数据首地址即可

c语言怎么将txt文件中的值赋值给结构体中相应的变量?
您好,非常简单,您只要采取流的方式就可以将txt中的文件读出来,然后赋给对应的变量。以后您如果再遇到类似的问题,可以按照下面的思路去解决:1、发现问题:往往生活在世界中,时时刻刻都处在这各种各样的矛盾中,当某些矛盾放映到意识中时,个体才发现他是个问题,并要求设法去解决它。这就是发现问题...

C语言 fread读存在文件内的结构体
int n=fread(info, sizeof(struct cars), X, myfile);fread 的返回值会告诉你读了几组数据出来。如果等于X,可能后面还会有。

c语言怎么把文件中没有对齐的2列数据的放到一个结构体中
这个很简单,首先用fgets获取一行,然后用一个for循环遍历该行,在第一个空格或者TAB出记录位置并将其改为'\\0',然后break,这是该行就被切割成两段了,分别用strcpy复制到对应的地方就OK了

相似回答