当以文本方式读写文件时,可以用EOF判断文件是否结尾,因为EOF=-1,而字符的ASCII码不可能为负数。
例如,当fp为文本方式读取的指针时
getc(fp)!=EOF
【判断文件结尾的方法(feof函数和EOF)】可判断是否读到文件结尾
当以二进制方式读写文件时,只能用feof函数判断,因为二进制读取数值,可能为负。
feof函数原型为
int feof(FILE *stream)
当未读到结尾时,返回值为0,读到结尾时,返回值为1
feof不仅适用于二进制打开,文本方式打开也适用
注意:只有读出所有的数据之后,再读一次,函数feof(fp)的返回值才为真
因此,当要统计文件大小时,sizef应该-1
int sizefile(FILE *fp)
{
int sizef=0;
while(!feof(fp))
{
fgetc(fp);
sizef++;
}
rewind(fp) //使得文件指针重新指向开头
return sizef-1;
}
推荐阅读
- c/c++|有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代...
- C/C++|C/C++ basis 02
- Qt实战|Qt+OpenCV联合开发(二十一)--图像翻转与旋转
- Qt实战|Qt+OpenCV联合开发(十四)--图像感兴趣区域(ROI)的提取
- Qt实战|Qt+OpenCV联合开发(十三)--通道分离与合并
- opencv|Qt+OpenCV联合开发(十六)--图像几何形状绘制
- Qt实战|Qt+OpenCV联合开发(十七)--随机数与随机颜色
- SNAT的MASQUERADE地址选择与端口选择
- IPTABLES的连接跟踪与NAT分析
- IPVS分析