fstream流的eof() 判断有点不合常理 按正常逻辑来说,如果到了文件末尾的话 ,那eof()应返回真 但是,c++输入输出流如何知道是否到末尾呢? 原来是根据的是: 如果fin>>不能再读入数据了,才发现到了文件结尾,这时才给流设定文件结尾的标志,此后调用eof()时,才返回真。 假设 fin>>x; //此时文件刚好读完最后一个数据(将其保存在x中) 但是, 这时 fin.eof()仍未假 因为,fin流的标志eofbit是FALSE, fin流此时认为文件还没有到末尾 只有当流再次读写时 fin>>x; 发现已无可读写数据,此时流才知道到达了结尾,这时才将标志eofbit修改为TRUE 此时流才知道了文件到底了末尾 也就是说,eof在读取完最后一个数据后,仍是False<
ifstream 流 判断文件是否结尾的函数eof(.xml
最新推荐文章于 2022-10-27 20:07:51 发布