I/O manipulators | ||||
Print functions(C++23) | ||||
C-style I/O | ||||
Buffers | ||||
(C++23) | ||||
(C++98/26*) | ||||
(C++20) | ||||
Streams | ||||
Abstractions | ||||
File I/O | ||||
String I/O | ||||
Array I/O | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
(C++98/26*) | ||||
(C++98/26*) | ||||
(C++98/26*) | ||||
Synchronized Output | ||||
(C++20) | ||||
Types | ||||
Error category interface | ||||
(C++11) | ||||
(C++11) |
Member functions | ||||
State functions | ||||
basic_ios::clear | ||||
Formatting | ||||
Miscellaneous | ||||
Protected member functions | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) |
void clear(std::ios_base::iostate state=std::ios_base::goodbit); | ||
Sets the stream error state flags by assigning them the value ofstate. By default, assignsstd::ios_base::goodbit which has the effect of clearing all error state flags.
Ifrdbuf() is a null pointer (i.e. there is no associated stream buffer), thenstate|std::ios_base::badbit is assigned.
Contents |
state | - | new error state flags setting. It can be a combination of the following constants:
|
(none)
If the new error state includes a bit that is also included in theexceptions() mask, throws an exception of typefailure.
clear()
without arguments can be used to unset thefailbit
after unexpected input; forstd::cin.putback(c) seeungetc
.
#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: XYZI am sorry, but 'XYZ' is not a numberPlease, enter a number: 3.14Thank you for entering the number 3.14
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 412 | C++98 | an excption would be thrown if the current error state includes a bit that is also included in theexceptions() mask | checks the new error state instead |
sets state flags (public member function)[edit] | |
returns state flags (public member function)[edit] |