fstream: Ein schreiben löscht altes Datenbestand
-
Hallo zusammen,
in meinem Program habe ich ein Stream mit denen ich Dateien bearbeite. Leider wird mir der alte Bestand gelöscht. Beispiel:
int main(){ ofstream fInput; fInput.open("test01.txt"); fInput << "Dies ist ein Test" << endl; fInput.close(); fInput.open("test02.txt"); fInput << "Dies ist ein Test 02" << endl; fInput.close(); fInput.open("test01.txt"); fInput << "Dies ist ein Test03" << endl; fInput.close(); return 0; }wenn ich ein
cat test01.txtmache, dann kommt nur:
Dies ist ein Test03
die Zeile:
Dies ist ein Test01
fehlt. Warum?Danke + Gruss,
Haksi
-
Weil ofstream standardmäßig den alten Inhalt der Datei beim Öffnen löscht (std::ios::trunc).
Du kannst als zweiten Parameter den Modus angeben, indem du die gewünschten Flags veroderst:
fInput.open("test01.txt", std::ios::out | std::ios::app);Durch das std::ios::app ("append") bleibt der alte Inhalt der Datei erhalten.
Stefan.