摘要:
fstream流的eof()判断有点不合常理 按常理逻辑来说,如果到了文件末尾的话,eof()应该返回真,但是,C++输入输出流如何知道是否到末尾了呢? 原来根据的是:如果fin>>不能再读入数据了,才发现到了文件结尾,这时才给流设定文件结尾的标志,此后调用eof()时,才返回真。 假设 find>>x; //此时文件刚好读完最后一个数据(将其保存在x中) 但是,这时fin.eof()仍为假,因为 fin流的标志eofbit是False,fin流此时认为文件还没有到末尾,只有当流再次读写时 fin>>x,发现已无可读写数据,此时流才知道到达了结尾,这时才将标 阅读全文