c函数feof()不能正确\"判断\"二进制文件的文件尾
会错意表错情,搭错车上错床——“度日如年”的故事及“feof()”的故事
■网友
你的index多跑了一个,index++是先使用index的值,后++我刚才说换用++index也不对,会把0漏了在这种情况下,你用index++,记得循环体外-1如果用++index,记得index初值设为-1顺便说一下,截图太不友好了,问代码就贴代码,方便别人改你的代码。int main() { int a = 100; int arr; FILE* fout = fopen("1.dat", "wb"); fwrite(\u0026amp;a, sizeof(a), 1, fout); fclose(fout); FILE* fin = fopen("1.dat", "rb"); int index = -1; do { fread(\u0026amp;arr, sizeof(int), 1, fin); } while (!feof(fin)); cout \u0026lt;\u0026lt; index \u0026lt;\u0026lt; endl; return 0;}
■网友
-@Pluto Hades 没回答到问题关键上,关键是feof().关于如何正确使用feof()的问题,请看这个页面的讨论(含正确用例):http://stackoverflow.com/questions/5431941/why-is-while-feof-file-always-wrong
推荐阅读
- 钟南山:随着冬天的到来,内地疫情防控不能松懈
- 『黄金时间』节水工作一刻不能放松! 黄金时间丨水乡江苏也缺水
- 电池|谁说家用紧凑SUV不能更运动?全新领克01让你“打脸”了
- 王者荣耀李白能不能出肉
- 水果|水果太甜,糖尿病患者都不能吃?这3种水果,其实升糖能力不高
- 怎样评价3月10日起外资企业不能在中国大陆提供视听服务这一消息
- 江苏省|不能带食品 信号屏蔽……南京这些剧场的观剧礼仪你知道吗?
- 疾病|皮肤3处突然“变红”,不能小觑,可能是癌症给出的“警示”
- 电信预付费用户为啥不能打印当月报销账单
- 被硬盘录像机自动删除的监控视频还能找回来了吗
