char cstr[4]; long int pos; int i; fstream DiskFile; // open file stuff ... pos = DiskFile.tellg(); DiskFile.read(cstr, 4); if (!DiskFile) { return SOME_ERROR_CODE; } DiskFile.seekg (pos, ios::beg); DiskFile.read(reinterpret_cast(&i), 4); if (!DiskFile) { return SOME_ERROR_CODE; } // in some much different part of the program DiskFile.write(reinterpret_cast(&i), sizeof(i));