结构体中某一个成员的数据不仅读取了自己的数据还把后一个成员的数据给读取了 求解怎么办!
book *read()
{//读取txt中的数据
FILE *fp;
if((fp=(fopen("lib.txt","a+")))==NULL)
{
printf("error");
exit(0);
}
int a;
book *l;
book *p,*r;
l=(book *) malloc(sizeof(book));
l->next=NULL;
r=l;
p=l->next;
printf("s_num name author publication year ISBN\n");
while(!feof(fp))
{
p=(book *)malloc(sizeof(book));
fscanf(fp,"%d\t%s\t%s\t%s\t%s\t%s\n",&p->s_num,p->name,p->author,p->publication,p->year,p->ISBN);
printf("%d%11s%6s%9s %34s%-13s\n",p->s_num,p->name,p->author,p->publication,p->year,p->ISBN);
p->next=NULL;
r->next=p;
r=r->next;
}
free(p);
fclose(fp);
return l;
}
txt数据:
1 CET4 ENG CET 2015-06-22 000-1-2111-3009-8
3 SAT1 ENG SAT 2013-11-30 000-1-2421-3045-9
4 CCO tou kan 2014-09-08 111-1-0000-4423-8
显示的数据:
1 CET4 ENG CET 2015-06-22000-1-2111-3009-8 000-1-2111-3009-8
3 SAT1 ENG SAT 2013-11-30000-1-2421-3045-9 000-1-2421-3045-9
4 CCO tou kan 2014-09-08111-1-0000-4423-8 111-1-0000-4423-8