软件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;
}
```
不知道你这个问题是否已经解决, 如果还没有解决的话: