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


    推荐阅读