一边用read函数读取文件信息源缓,一边保存在链表中。
链表保存信息,必须要结构体,因为要有地址保存下个链表的地址
struct test
{
chararry[100]//汪冲用于保存信息
struct test * next//用于保存下个内容信息的指针地址
};
这样就可以把信息链接在一起了。
楼主你看看下面。我把你创建的链表写到了d盘名叫shebei的文件中,然后又将你的文件中的链表读到了结构体数组SingleInfo中。我也是新手共同学习学晌拿习(*^__^*)
void RW_File(SHEBEI *head)/*head是你刚刚创建的链表的头指针*/
{
SHEBEI SingleInfo[20]
FILE fp
int i=0
if((fp = fopen("d:\\shebei","wb+")) 轮首== NULL)
{
printf(“can not open file”)
exit(1)
}
while(head)
{
fwrite(head,sizeof(SHEBEI),1,fp)
head = head->next
}
rewind(fp)/*到这里已经把链表写入到d盘的shebei文件中*/
while(!feof(fp))
fread(SingleInfo,sizeof(SHEBEI),1,fp)
宴桐搭i++
fclose(fp)
}
struct stu{long num
char name[10]
int score
struct stu *next
}
#define SIZE (&(((struct stu *)NULL)->next))
int save(struct stu *l, char *file)
{
FILE *fp
fp = fopen(file, "wb")
if(fp == NULL) return 0
while(l)
{
没斗 fwrite(l, SIZE, 1, fp)
}
fclose(fp)
return 0
}
struct stu *load(char *file)
{
FILE *fp
struct stu *h=NULL, *p,*t
fp = fopen(file, "wb")
if(fp == NULL) return NULL
while(l)
{
t = (struct stu *)malloc(sizeof(struct stu))
fread(t, SIZE, 1, fp)
t->next=NULL
if(feof(fp))
{
free(t)
break
}
if(h==NULL) h = p = t
else
{
培察档p->next= t
配乱 p=t
}
}
fclose(fp)
return h
}
以上是不带头结点链表的读写。
带头结点的, 只需要稍做改动即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)