求赐教!!坐等援助!!
#include <stdio.h>
int main()
{
FILE *fp;
if((fp=fopen("car.txt","a+"))==NULL)
{
printf("无法打开文件car.txt,无法进行本次录入工作!\n");
exit(0);
}
while(!feof(fp))
{
printf("++++++++++++++++++++++++++++++++++\n");
//死循环了???
}
fclose(fp);
}
[解决办法]
char ch=fgetc(fp);//为空并不代表文件读取结束,你都没有读取,程序也不能进行是否已结束的判断,所以在循环中加个这个试试
[解决办法]
这是因为你的指针没有移动,在循环中加个 char c = fgetc(fp);
[解决办法]
空文件并不代表文件已经结束,你指针都没移动,还没开始读,怎么知道是否已结束。。。。即便是空文件也不能通过你那种方式去判断
[解决办法]
EOF只是个宏定义,
在stdio.h 头文件中定义的
#define EOF (-1)
[解决办法]
当然是死循环啦
feof()仅仅是判断文件是否到结尾
你的while里面又没有任何文件操作,所以每次循环feof()结果不会改变
因此你的程序要不就是不进入while循环,要不就是进入循环后不出不来的死循环
[解决办法]
#include <stdio.h>#include <stdlib.h>int main(){ FILE *fp; char ch; if((fp=fopen("car.txt","r"))==NULL) { printf("无法打开文件car.txt,无法进行本次录入工作!\n"); exit(0); } while((ch=fgetc(fp))!=EOF) { printf("++++++++++++++++++++++++++++++++++\n"); //死循环了??? } fclose(fp);}
[解决办法]
#include <stdio.h>#include <stdlib.h>int main(){ FILE *fp; char ch; if((fp=fopen("car.txt","r"))==NULL) { printf("无法打开文件car.txt,无法进行本次录入工作!\n"); exit(0); } // while((ch=fgetc(fp))!=EOF) // { // printf("++++++++++++++++++++++++++++++++++\n"); // // //死循环了??? // } while (!feof(fp)) { printf("++++++++++++++++++++++++++++++++++\n"); ch=fgetc(fp); } fclose(fp);}