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

Sets the stream error state flags by assigning them the value of state. By default, assigns std::ios_base::goodbit which has the effect of clearing all error state flags.

# Declarations

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

# Parameters

# Return value

(none)

# Example

#include <iostream>
#include <string>
 
int main()
{
    for (char c : {'\n', '4', '1', '.', '3', '\n', 'Z', 'Y', 'X'})
        std::cin.putback(c); // emulate user's input (not portable: see ungetc Notes)
 
    double n;
    while (std::cout << "Please, enter a number: " && !(std::cin >> n))
    {
        std::cin.clear();
        std::string line;
        std::getline(std::cin, line);
        std::cout << line << "\nI am sorry, but '" << line << "' is not a number\n";
    }
    std::cout << n << "\nThank you for entering the number " << n << '\n';
}

# Defect reports

DRApplied toBehavior as publishedCorrect behavior
LWG 412C++98an excption would be thrown if the current error stateincludes a bit that is also included in the exceptions() maskchecks the newerror state instead

# See also