feof()函数的意思是用来判断你读到了文件的外面.
而不是判断文件指针是否到达文件尾部(指向文件最后一个字符的后面).
如果在while表达式里直接用feof()判断是否到达文件尾,则结果总会多读一次.
下面是正确的写法.
#include<stdio.h>
int main()
{
int c;
FILE*file=fopen("test.txt","r");
while(1){
c=fgetc(file);//判断c等于EOF是我们通常的写法.
if(feof(file))break;
fputc(c,stdout);
}
return 0;
}
以此谨记.