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

< cpp‎ | io‎ | basic ios

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

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

参数

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


返回值

(无)

异常

示例

无参数的 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';
}


参阅

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