ostream.write kontrollieren
-
Das ist jetzt mal das Bsp. aus der Faq herauskopiert.
Jetzt frage ich mich wie ich herausbekomme ob die write bzw. read operatiion erfolgreich war. FileBin.good() probiert aber das gab immer false zurück.using namespace std; fstream FileBin("d:\\cdtemp\\streams\\test.dat", ios::in|ios::out|ios::binary); if (FileBin.is_open()) { // 1. Dateigröße bestimmen. FileBin.seekg(0, ios::end); unsigned long FileSize = streamoff(FileBin.tellg()); FileBin.seekg(0, ios::beg); // 2. Puffer anlegen und Datei einlesen. char* pBuffer = new char[FileSize]; FileBin.read(pBuffer, FileSize); // 3. An Stelle 7 (relativ zum Beginn) zwei Bytes ersetzen. FileBin.seekp(7, ios::beg); FileBin.write(pBuffer+FileSize-2, 2); // Nachher wieder aufräumen. delete [] pBuffer; }
-
Probier mal .fail()