the use of both checking if the ifstream object used to call the open function is NULL and whether the ifstream object's fail member function returns true
#include <fstream> #include <iostream> using namespace std; int main () { ifstream infile; infile.open("students.dat"); cout << "(infile) = " << infile << endl; cout << "(infile.fail()) = " << infile.fail() << endl; return 0; }