EOF产生错误的原因
Posted xy2656141474
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EOF产生错误的原因相关的知识,希望对你有一定的参考价值。
假定在“data.txt”文档中存放了1 2 3 fstream file;
1 fstream file; 2 file.open("data.txt"); 3 if (!file) cout << "错误!未找到文件!" << endl; 4 5 while(!file.eof()) //!!eof()返回true时是读到文件结束符0xFF,而文件结束符是最后一个字符的下一个字符。 6 { //判断当前文件指针位置,是否处于文件结束(End Of File)位置,+ 7 file >> temp_num; 8 en_allQ(QA,temp_num);//把文件的数字存入队列QA中 9 } 10 11 output(QA);
最后输出QA后会输出“1 2 3 3”,
eof()返回true的时候并不是读到文件的最后一个字符
而是读取到文件的结束符(0xFF),在文件最后一个字符的下一个
因此,当读到最后一个字符时,程序会多读一次(编译器会让指针停留在最后一个字符那里,然后重复读取一次,这也就是就上面最后一个字符会输出两次的原因。
ps:参考自“https://blog.csdn.net/s200820212/article/details/10322605?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158833730019724846439217%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.57644%2522%257D&request_id=158833730019724846439217&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-1”与“https://blog.csdn.net/rebel_321/article/details/4927464?ops_request_misc=”
以上是关于EOF产生错误的原因的主要内容,如果未能解决你的问题,请参考以下文章
在片段导航抽屉中。我在 getActionBar 中遇到错误。我能知道错误的原因和错误吗
fastjson 错误解决方案详情 com.alibaba.fastjson.JSONException: syntax error, expect {, actual EOF, pos 1410