A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.tutorialspoint.com/cpp_standard_library/cpp_ios_setstate.htm below:

C++ IOS::setstate() function

C++ IOS::setstate() function

The C++ std::ios::setstate() function is used to modify the state of an input/output stream. It sets the stream's internal state flags, such as badbit, failbit, eofbit indicating various error conditions like read/write errors, operation failures, or EOF. This function helps in error handling by enabling the program to check and respond to the stream's state after performing I/O operations.

Syntax

Following is the syntax for std::ios::setstate() function.

void setstate (iostate state);
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

It 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

Let's look at the following example, where we are going to manually set the failbit of an input stream to simulate an input failure.

#include <iostream>
#include <sstream>
int main()
{
    std::istringstream a("112 ABC");
    int x;
    a >> x;
    std::cout << "First Read: " << x << std::endl;
    a.setstate(std::ios::failbit);
    a >> x;
    if (a.fail()) {
        std::cout << "Second Read Failed Due Do setstate()" << std::endl;
    }
    return 0;
}
Output

Output of the above code is as follows −

First Read: 112
Second Read Failed Due Do setstate()
Example

Consider the following example, where we are going to combine both failbit and eofbit.

#include <iostream>
#include <sstream>
int main()
{
    std::istringstream a("112");
    int x;
    a >> x;
    std::cout << "First Read: " << x << std::endl;
    a.setstate(std::ios::failbit | std::ios::eofbit);
    a >> x;
    if (a.fail() && a.eof()) {
        std::cout << "Second Read Failed Due To setstate() With eofbit." << std::endl;
    }
    return 0;
}
Output

Following is the output of the above code −

First Read: 112
Second Read Failed Due To setstate() With eofbit.
Example

In the following example, we are going to clear the goodbit to simulate that the stream is no longer in a good state.

#include <iostream>
#include <sstream>
int main()
{
    std::istringstream x("1213");
    int a;
    x >> a;
    std::cout << "First Read: " << a << std::endl;
    x.setstate(std::ios::goodbit);
    x >> a;
    std::cout << "Second Read: " << a << std::endl;
    return 0;
}
Output

If we run the above code it will generate the following output −

First Read: 1213
Second Read: 1213

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