C++ IOS 库 - clear
描述
它用于设置错误状态标志。 标志的当前值被覆盖:所有位都被那些处于状态的位替换; 如果状态为goodbit(为零),则所有错误标志都将被清除。
如果调用此函数时没有与流关联的流缓冲区,则会自动设置 badbit 标志(无论在参数状态中传递的该位的值如何)。
声明
以下是 ios::clear 函数的声明。
void clear (iostate state = goodbit);
参数
state − 类型为 ios_base::iostate 的对象,可以将以下状态标志成员常量的任意组合作为值 −
iostate 值 (成员常量) |
表明 | 检查状态标志的函数 | ||||
---|---|---|---|---|---|---|
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 |
返回值
none
异常
Basic guarantee − 如果抛出异常,则流处于有效状态。 如果生成的错误状态标志不是 goodbit 并且为该状态设置了成员异常,它会抛出成员类型失败的异常。
数据竞争
修改流对象。
对同一流对象的并发访问可能会导致数据竞争。
示例
在下面的示例中解释了 ios::clear 函数。
#include <iostream> #include <fstream> int main () { char buffer [80]; std::fstream myfile; myfile.open ("test.txt",std::fstream::in); myfile << "test"; if (myfile.fail()) { std::cout << "Error writing to test.txt\n"; myfile.clear(); } myfile.getline (buffer,80); std::cout << buffer << " successfully read from file.\n"; return 0; }