软件VC6.0,win10和win7电脑,win10电脑用while(!feof(fp))读取没问题,最后一行读取为空行,但是win7电脑运行同样的代码,却只读到最后一行,非空行,导致在创建链表头指针时,链表最后尾部结点少了一个,麻烦大佬帮看看是为什么,急!!
Lnode* creat()
{
FILE *fp;
fp=fopen("图书信息.txt","r");
Lnode *p1,*p2;
Lnode *Head;
p1=p2=(Lnode*)malloc(LEN);
Head=NULL;
fscanf(fp,"%d %s %s %s %s %d",&p1->book_num,p1->book_name, p1->writer_name,p1->publisher_name,p1->data,&p1->book_price);
while(!feof(fp))
{
n++;
if(n==1)Head=p1;
else p2->next=p1;
p2=p1;
p1=(Lnode*)malloc(LEN);
fscanf(fp,"%d %s %s %s %s %d",&p1->book_num,p1->book_name,p1->writer_name,p1->publisher_name,p1->data,&p1->book_price);
}
p2->next=NULL;
fclose(fp);
return Head;
}
```![图片说明](https://img-ask.csdn.net/upload/201910/25/1571993832_621595.png)![图片说明](https://img-ask.csdn.net/upload/201910/25/1571993843_791021.png)