public member function
<ios> <iostream>

std::basic_ios::fail

bool fail() const;
检查 failbit 或 badbit 是否已设置
如果流的 failbitbadbit 错误状态标志中的一个(或两个)已设置,则返回 true

当输入操作期间发生错误时,至少会设置其中一个标志。

failbit 通常由操作设置,表示错误与操作本身的内部逻辑相关,并且可能允许进行进一步的流操作。而 badbit 通常在错误涉及流的完整性丢失时设置,即使尝试对流执行不同的操作,这种情况也很可能持续存在。badbit 可以通过调用成员函数 bad 来独立检查。

iostate
(成员常量)
表示检查状态标志的函数
good()eof()fail()bad()rdstate()
goodbit无错误(值为零 iostatetruefalsefalsefalsegoodbit
eofbit到达文件尾falsetruefalsefalseeofbit
failbitI/O 操作的逻辑错误falsefalsetruefalsefailbit
badbitI/O 操作的读/写错误falsefalsetruetruebadbit
eofbitfailbitbadbit 是具有实现定义值的成员常量,可以进行组合(就像使用按位 OR 运算符一样)。

goodbit 为零,表示其他位均未设置。

请注意,由于到达文件尾(End-of-File)而导致的读取失败会同时设置 eofbitfailbit

此函数是 basic_ios::operator! 的同义词。

参数



返回值

如果设置了 badbit 和/或 failbit,则返回 true
否则返回 false

数据竞争

访问流对象。
并发访问同一个流对象可能导致数据争用。

异常安全

强保证: 如果抛出异常,流不会发生任何改变。

另见