目录
feof的误用:
feof
- 用于判断文件指针是否指向文件末尾
- 当指向文件尾,返回1;否则返回0;
(可用于判断二进制文件/文本文件读取结束以后真实的结束情况 )
在文件读取过程中,不能用feof函数的返回值直接用来判断文件的是否结束!!!
例如:用while(!feof(fp))来一直读取文件直到文件结束
feof的正确使用场景:feof应当用于,在文件读取已经结束的时候,判断是读取失败导致的结束还是遇到文件尾正常的结束(与ferror搭配)
判断文件读取是否结束:
对于文本文件:
- fgetc判断返回值是否为EOF
- fgets判断返回值是否为NULL
对于二进制文件:
- fread判断返回值是否小于实际要读的个数
参考资料:其中的例子也说明了feof的正确使用场景