The C++ std::ios::clear() function is used to reset the stete flags of an input/output stream. Streams can enter an error state due to operations like invalid input or output failures. When this function is invoked, it clears these error flags, restoring the stream to a good state so that further I/O operations can be performed.
SyntaxFollowing is the syntax for std::ios::clear() function.
void clear (iostate state = goodbit);Parameters
iostate value
(member constant)
indicates functions to check state flags good() eof() fail() bad() rdstate() goodbit No errors (zero value iostate)true
false
false
false
goodbit eofbit End-of-File reached on input operation false
true
false
false
eofbit failbit Logical error on i/o operation false
false
true
false
failbit badbit Read/writing error on i/o operation false
false
true
true
badbit Return Value
This function does not return anything.
ExceptionsIf an exception is thrown, the stream is in a valid state. It throws an exception of member type failure if the resulting error state flag is not goodbit and member exceptions was set throw for that state.
Data RacesModifies the stream object.
Concurrent access to the same stream object may cause data races.
ExampleIn the following example, we are going to consider the basic usage of the clear() function.
#include <iostream> int main() { std::cin.setstate(std::ios::failbit); if (std::cin.fail()) { std::cout << "Error State Detected. Clearing Errors.\n"; std::cin.clear(); } std::cout << "Stream Is Now Ready For Use.\n"; return 0; }Output
If we run the above code it will generate the following output −
Error State Detected. Clearing Errors. Stream Is Now Ready For Use.Example
Let's look at the following example, where we are going to clear the std::cin after a failed input.
#include <iostream> int main() { int x; std::cout << "Enter a number: "; std::cin >> x; if (std::cin.fail()) { std::cerr << "Clearing the error state.\n"; std::cin.clear(); std::cin.ignore(10000, '\n'); } else { std::cout << "Entered Input : " << x << '\n'; } return 0; }Output
Output of the above code is as follows −
Enter a number: 1212 Entered Input : 1212
ios.htm
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4