- // Get the book size in number of entries, we are already at the end of file
- size = (size_t)tellg() / sizeof(BookEntry);
-
- if (!good())
- {
- cerr << "Failed to open book file " << fName << endl;
- exit(EXIT_FAILURE);
- }
-
- fileName = fName; // Set only if successful
- return true;
+ fileName = is_open() ? fName : "";
+ ifstream::clear(); // Reset any error flag to allow retry ifstream::open()
+ return !fileName.empty();