eof用于文件结束和文件错误时的函数返回值,计算机本质上是如何靠eof判断是文件结束还是错误呢
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
int ch;
if((fp = fopen("output.txt", "r")) == NULL)
{
fputs("打开文件失败!\n", stderr);
exit(EXIT_FAILURE);
}
while(1)
{
ch = fgetc(fp);
if (feof(fp)) //当循环进入到这行时,指针fp指向的内存上被设置了一个文件结束指示器
{
break;
}
putchar(ch);
}
if (ferror(fp)) //当循环进入到这行时,指针fp指向的内存上被设置了一个文件错误指示器
{
fputs("出错了!\n", stderr);
}
clearerr(fp);
if (feof(fp) || ferror(fp))
{
printf("啦啦啦啦!\n");
}
fclose(fp);
return 0;
}
我的理解对吗?