feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为1,否则为0。
当读到文件末尾时,文件指针并没有超出文件,所以会多读一次
一种解决方案,直接上代码:
while (!feof(p)) {
fscanf("fp","%d", &a); //先读一次,下面再判断是否文件结束,结束则跳出循环
if (feof(fp))
break;
//fseek("fp",-1,1); //如果a这个值不使用,记得前移文件指针
}
(学习笔记)