0Pricing
C++ Academy · Lesson

Error Handling and State

Check stream state.

Stream State Bits

Every stream tracks its condition with state flags:

  • goodbit: all is well.
  • eofbit: end of file reached.
  • failbit: a logical error (bad format).
  • badbit: a serious I/O error.
#include <iostream>
#include <fstream>

int main() {
    std::ifstream in("missing_98765.txt");
    std::cout << std::boolalpha << "good: " << in.good() << '\n';
    return 0;
}

Testing a Stream

A stream converts to bool: it is true when usable. if (!in) detects failure concisely.

#include <iostream>
#include <fstream>

int main() {
    std::ifstream in("nope_55555.txt");
    if (!in) std::cout << "stream not usable\n";
    else std::cout << "ok\n";
    return 0;
}

All lessons in this course

  1. Reading Files with ifstream
  2. Writing Files with ofstream
  3. Binary File I/O
  4. Error Handling and State
← Back to C++ Academy