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 中遇到错误。我能知道错误的原因和错误吗

实时阴影渲染:软阴影

29 缺陷定义产生原因

段错误产生原因及简单的调试方法

fastjson 错误解决方案详情 com.alibaba.fastjson.JSONException: syntax error, expect {, actual EOF, pos 1410

PHP定界符eof 的使用