public member function
<ios> <iostream>
std::ios::fail
检查 failbit 或 badbit 是否已设置
如果流的 failbit 或 badbit 错误状态标志 中的一个(或两者)被设置,则返回 true
。
当输入操作期间发生错误时,至少会设置这些标志中的一个。
failbit 通常由操作设置,当错误与操作本身的内部逻辑相关时;流上的进一步操作可能仍然可行。而 badbit 通常在错误涉及流的完整性丢失时设置,即使尝试对流进行其他操作,这种完整性丢失很可能会持续存在。badbit 可通过调用成员函数 bad 独立检查。
iostate 值 (成员常量) | 表示 | 检查状态标志的函数 |
good() | eof() | fail() | bad() | rdstate() |
goodbit | 无错误(值为零 iostate) | true | false | false | false | goodbit |
eofbit | 到达文件尾 | false | true | false | false | eofbit |
failbit | I/O 操作的逻辑错误 | false | false | true | false | failbit |
badbit | I/O 操作的读/写错误 | false | false | true | true | badbit |
eofbit、failbit 和 badbit 是具有实现定义值的成员常量,可以进行组合(就像使用按位 OR 运算符一样)。
goodbit 为零,表示其他位均未设置。
到达文件结尾会设置 eofbit。但请注意,到达文件结尾的操作也可能设置 failbit,如果这会导致它们失败(从而同时设置 eofbit 和 failbit)。
此函数是 ios::operator! 的同义词。
返回值
如果设置了 badbit 和/或 failbit,则为 true
。
否则返回 false
。
数据竞争
访问流对象。
并发访问同一个流对象可能导致数据争用。
异常安全
强保证: 如果抛出异常,流不会发生任何改变。