C++ ios 库 - setstate
描述
它用于检查设置错误状态标志。 通过将当前标志与参数状态中的标志组合来修改当前内部错误状态标志(就像执行按位或操作一样)。任何已设置的错误位标志都不会被清除。 请参阅 member clear 以获得类似的功能。 如果调用此函数时没有与流关联的流缓冲区,则会自动设置 badbit 标志(无论在参数状态中传递的该位的值如何)。
声明
以下是 ios::setstate 函数的声明。
void setstate (iostate state);
参数
state − 类型为 ios_base::iostate 的对象,可以将以下成员常量的任意组合作为值 −
iostate value (member constant) |
indicates | functions to check state flags | ||||
---|---|---|---|---|---|---|
good() | eof() | fail() | bad() | rdstate() | ||
goodbit | No errors (zero value iostate) | true |
false |
false |
false |
goodbit |
eofbit | End-of-File reached on input operation | false |
true |
false |
false |
eofbit |
failbit | Logical error on i/o operation | false |
false |
true |
false |
failbit |
badbit | Read/writing error on i/o operation | false |
false |
true |
true |
badbit |
返回值
non.
异常
Basic guarantee − 如果抛出异常,则流处于有效状态。 如果生成的错误状态标志不是 goodbit 并且为该状态设置了成员异常,它会抛出成员类型失败的异常。
数据竞争
修改流对象。
对同一流对象的并发访问可能会导致数据竞争。