【发布时间】:2010-04-13 23:20:35
【问题描述】:
我正在逐字节读取二进制文件,我需要确定是否达到了 eof。
feof() 不起作用,因为“仅在对不存在的字节进行读取请求时才设置 eof”。所以,我可以有我的自定义 check_eof 喜欢:
if ( fread(&byte,sizeof(byte),1,fp) != 1) {
if(feof(fp))
return true;
}
return false;
但问题是,如果没有达到 eof,我的文件指针会向前移动一个字节。
所以一个解决方案可能是使用ftell() 然后fseek() 让它到正确的位置。
另一种解决方案可能是将字节提前缓冲在一些临时存储中。
有更好的解决方案吗?
【问题讨论】:
-
您需要将流 (
fp) 传递给feof。
标签: c file-handling feof