# std::basic_ios<CharT,Traits>::clear

< cpp‎ | io‎ | basic ios

void clear( std::ios_base::iostate state = std::ios_base::goodbit ); |  |

通过以 `state` 的值赋值，设置流错误状态标志。默认赋值 std::ios_base::goodbit ，它拥有的效果为清除所有错误状态标志。

若 rdbuf() 为空指针（即无关联的流缓冲），则赋值 state | badbit 。可能抛出异常。

### 参数

state | - | 新的错误状态标志设置。它能为下列常量的组合：
常量 | 解释
`goodbit` | 无错误
`badbit` | 不可恢复的流错误
`failbit` | 输入/输出操作失败（格式化或提取错误）
`eofbit` | 关联的输出序列已抵达文件尾

### 返回值

（无）

### 异常

| 本节未完成 原因：也链接到 basic_ios::exceptions

### 示例

无参数的 clear() 能用于在不期待的输入后反设置 failbit

    #include <iostream>
    #include <string>

    int main()
    {
        double n;
        while( std::cout << "Please, enter a number\n"
               && ! (std::cin >> n) )
        {
            std::cin.clear();
            std::string line;
            std::getline(std::cin, line);
            std::cout << "I am sorry, but '" << line << "' is not a number\n";
        }
        std::cout << "Thank you for entering the number " << n << '\n';
    }

### 参阅

setstate | 设置状态标志 (公开成员函数)
rdstate | 返回状态标志 (公开成员函数)