A RetroSearch Logo

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

Search Query:

Showing content from https://cplusplus.com/basic_ios::good below:

public member function

<ios> <iostream>

std::basic_ios::good

Check whether state of stream is good

Returns true if none of the stream's error state flags (eofbit, failbit and badbit) is set.

This function behaves as if defined as:


1
2
3
bool basic_ios::good() const {
  return rdstate() == goodbit;
}

Notice that this function is not the exact opposite of member bad, which only checks whether the badbit flag is set.

Whether specific error flags are set, can be checked with member functions eof, fail, and bad:

iostate value
(member constants) 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 eofbit, failbit and badbit are member constants with implementation-defined values that can be combined (as if with the bitwise OR operator).


goodbit is zero, indicating that none of the other bits is set.

Parameters none

Return Valuetrue if none of the stream's state flags are set.
false if any of the stream's state flags are set (badbit, eofbit or failbit).

Example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// error state flags
#include <iostream>     // std::cout, std::ios
#include <sstream>      // std::stringstream

void print_state (const std::ios& stream) {
  std::cout << " good()=" << stream.good();
  std::cout << " eof()=" << stream.eof();
  std::cout << " fail()=" << stream.fail();
  std::cout << " bad()=" << stream.bad();
}

int main () {
  std::stringstream stream;

  stream.clear (stream.goodbit);
  std::cout << "goodbit:"; print_state(stream); std::cout << '\n';

  stream.clear (stream.eofbit);
  std::cout << " eofbit:"; print_state(stream); std::cout << '\n';

  stream.clear (stream.failbit);
  std::cout << "failbit:"; print_state(stream); std::cout << '\n';

  stream.clear (stream.badbit);
  std::cout << " badbit:"; print_state(stream); std::cout << '\n';

  return 0;
}

Output:
goodbit: good()=1 eof()=0 fail()=0 bad()=0
 eofbit: good()=0 eof()=1 fail()=0 bad()=0
failbit: good()=0 eof()=0 fail()=1 bad()=0
 badbit: good()=1 eof()=0 fail()=1 bad()=1


Data races Accesses the stream object.
Concurrent access to the same stream object may cause data races.

Exception safetyStrong guarantee: if an exception is thrown, there are no changes in the stream.

See also
basic_ios::fail
Check whether failbit or badbit is set (public member function)
basic_ios::bad
Check whether badbit is set (public member function)
basic_ios::eof
Check whether eofbit is set (public member function)
basic_ios::rdstate
Get error state flags (public member function)
basic_ios::setstate
Set error state flag (public member function)
basic_ios::clear
Set error state flags (public member function)

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