
- C++ Library - Home
- C++ Library - <fstream>
- C++ Library - <iomanip>
- C++ Library - <ios>
- C++ Library - <iosfwd>
- C++ Library - <iostream>
- C++ Library - <istream>
- C++ Library - <ostream>
- C++ Library - <sstream>
- C++ Library - <streambuf>
- C++ Library - <atomic>
- C++ Library - <complex>
- C++ Library - <exception>
- C++ Library - <functional>
- C++ Library - <limits>
- C++ Library - <locale>
- C++ Library - <memory>
- C++ Library - <new>
- C++ Library - <numeric>
- C++ Library - <regex>
- C++ Library - <stdexcept>
- C++ Library - <string>
- C++ Library - <thread>
- C++ Library - <tuple>
- C++ Library - <typeinfo>
- C++ Library - <utility>
- C++ Library - <valarray>
- The C++ STL Library
- C++ Library - <array>
- C++ Library - <bitset>
- C++ Library - <deque>
- C++ Library - <forward_list>
- C++ Library - <list>
- C++ Library - <map>
- C++ Library - <multimap>
- C++ Library - <queue>
- C++ Library - <priority_queue>
- C++ Library - <set>
- C++ Library - <stack>
- C++ Library - <unordered_map>
- C++ Library - <unordered_set>
- C++ Library - <vector>
- C++ Library - <algorithm>
- C++ Library - <iterator>
- The C++ Advanced Library
- C++ Library - <any>
- C++ Library - <barrier>
- C++ Library - <bit>
- C++ Library - <chrono>
- C++ Library - <cinttypes>
- C++ Library - <clocale>
- C++ Library - <condition_variable>
- C++ Library - <coroutine>
- C++ Library - <cstdlib>
- C++ Library - <cstring>
- C++ Library - <cuchar>
- C++ Library - <charconv>
- C++ Library - <cfenv>
- C++ Library - <cmath>
- C++ Library - <ccomplex>
- C++ Library - <expected>
- C++ Library - <format>
- C++ Library - <future>
- C++ Library - <flat_set>
- C++ Library - <flat_map>
- C++ Library - <filesystem>
- C++ Library - <generator>
- C++ Library - <initializer_list>
- C++ Library - <latch>
- C++ Library - <memory_resource>
- C++ Library - <mutex>
- C++ Library - <mdspan>
- C++ Library - <optional>
- C++ Library - <print>
- C++ Library - <ratio>
- C++ Library - <scoped_allocator>
- C++ Library - <semaphore>
- C++ Library - <source_location>
- C++ Library - <span>
- C++ Library - <spanstream>
- C++ Library - <stacktrace>
- C++ Library - <stop_token>
- C++ Library - <syncstream>
- C++ Library - <system_error>
- C++ Library - <string_view>
- C++ Library - <stdatomic>
- C++ Library - <variant>
- C++ STL Library Cheat Sheet
- C++ STL - Cheat Sheet
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
C++ IOS::clear() function
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.
Syntax
Following is the syntax for std::ios::clear() function.
void clear (iostate state = goodbit);
Parameters
- state − An object of type ios_base::iostate that can take as value any combination of the following member constants.
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.
Exceptions
If 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 Races
Modifies the stream object.
Concurrent access to the same stream object may cause data races.
Example
In 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