【发布时间】:2013-05-09 10:53:20
【问题描述】:
我想知道在什么情况下我们可以拥有:
bool(std::ifstream) != std::ifstream::good()
不同之处在于bool(std::ifstream) 不测试eof 位,而std::ifstream::good() 测试它。但实际上,如果尝试在文件结束后读取某些内容,则会引发 eof 位。但是,一旦您尝试这样做,我认为fail 或bad 位也已设置。
因此,在什么情况下您只能提高 eof 位?
【问题讨论】:
-
您可以独立于其他错误标志手动设置 eof 位,但我不确定在什么情况下您会这样做。
std::ifstream::setstate(std::ios::eofbit).