我是靠谱客的博主 如意鸭子,最近开发中收集的这篇文章主要介绍转载 - C++ - 关于ifstream/fstream流 判断文件是否结束eof()的问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

出处:http://blog.csdn.net/shuilan0066/article/details/4669451

在做实验的时候遇到这个问题,找原因的时候发现出处除了讲明原因,还举了例子,所以记下来。

其实在循环判断文件是否结束的时候可以直接就流输入放在循环条件那里,但是这里补充使用eof()的一些细节问题。其实这是关于到底什么时候标志位才会变化的问题。总结起来就是只有使用一次流变量来输入输出,标志位才会更新一次。

 

正文:

 

 

   fstream流的eof()  判断有点不合常理

 

 

   按正常逻辑来说,如果到了文件末尾的话 ,那eof()应返回真

 

   但是,c++输入输出流如何知道是否到末尾呢?

 

   原来是根据的是: 如果fin>>不能再读入数据了,才发现到了文件结尾,这时才给流设定文件结尾的标志,此后调用eof()时,才返回真。

 

 

   假设

 

   fin>>x; //此时文件刚好读完最后一个数据(将其保存在x中)

 

   但是, 这时 fin.eof()仍未假 因为,fin流的标志eofbit是FALSE, fin流此时认为文件还没有到末尾

最后

以上就是如意鸭子为你收集整理的转载 - C++ - 关于ifstream/fstream流 判断文件是否结束eof()的问题的全部内容,希望文章能够帮你解决转载 - C++ - 关于ifstream/fstream流 判断文件是否结束eof()的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部