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;
}

