Namespaces
Variants
Actions

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

From cppreference.com
< cpp‎ | io‎ | basic ios
 
 
 
 

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.

If rdbuf() is a null pointer (i.e. there is no associated stream buffer), then state |std::ios_base::badbit is assigned.

Contents

[edit]Parameters

state - new error state flags setting. It can be a combination of the following constants:
Constant Explanation
goodbit no error
badbit irrecoverable stream error
failbit input/output operation failed (formatting or extraction error)
eofbit associated input sequence has reached end-of-file

[edit]Return value

(none)

[edit]Exceptions

If the new error state includes a bit that is also included in the exceptions() mask, throws an exception of type failure.

[edit]Example

clear() without arguments can be used to unset the failbit after unexpected input; for std::cin.putback(c) see ungetc.

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

Output:

Please, enter a number: XYZ I am sorry, but 'XYZ' is not a number Please, enter a number: 3.14 Thank you for entering the number 3.14

[edit]Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 412C++98 an excption would be thrown if the current error state
includes a bit that is also included in the exceptions() mask
checks the new
error state instead

[edit]See also

sets state flags
(public member function)[edit]
returns state flags
(public member function)[edit]
close