C语言中把文件里面的几组数据依次读出来分别赋值给几个结构体变量(用链表存储)怎么实现?求具体代码

比如struct use{char name[10];char code[10];struct use *next;};
链表带头 struct use *head=null;
if(文件不为空)

head=(struct use *)malloc(sizeof(struct use));
~~~~~~

假设 文件名为a.txt 怎么判断文件是否为空 怎么判断是否到了文件尾部?(windows下面的判断)
文件里面的内容是 a 1 b 12 c 123 d 1234

满意再加10分
顺便讲解一下fread()函数的具体功能 一个文本里有很多内容 fread函数是否把文本里面的内容读完。假如它把整个文本读完,那么每次读取的内容不同,但我们在写的时候fread(&temp,1,10,pread)只给一个temp变量 temp里面的内容不是被覆盖了??
若只读指定的字节 我要怎么把整个文本的内容遍历完,循环控制条件是什么??

feof(),用这个函数判断是否读到文件尾了。
fread(buf,size,count,fp);//buf输入数据起始地址,size 每个数据块的大小,count 每次写入的数据块个数,fp 文件指针
写好后是:
while(!feof(fp))
{
fread(&temp[i],sizeof(struct use),1,fp);//这个读出来放数组里面
i++;
}
问题是你读的是txt文件,完全可以用fscanf()函数么。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-17
不是链表么,只要判断head.next=head就知道时空的了,反之亦然追问

head.next=head?我不是循环链表

追答

你可以读一次就把它输出啊,这样被覆盖了也不怕了,不是循环读出的吗

追问

fread(&temp,1,10,pread)我怎么知道它读了几次

第2个回答  2012-04-17
只要判断head.next=head追问

最主要不是链表的操作 我问的是怎么判断到了文件尾

相似回答