In Textdatei hinzufügen
-
Morgen Leute, hätte da mal eine Frage: Wie kann ich in eine Textdatei schreiben, ohne dass er die vorhandenen Zeilen überschreibt sondern den Text einfach nur unten dranhängt?
-
Indem du die Datei im "append" Modus öffnest.
-
Falls du die Dateistreams der C++-IOStreams verwendest, öffnest du sie mit dem
std::ios_base::app(append) Flag.std::ofstream stream("MeineDatei.txt", std::ios_base::app); // oder, **falls nötig** std::fstream stream("MeineDate.txt", std::ios_base::out | std::ios_base::app);
-
Dies habe ich schon probiert, jedoch funktionierte es nicht. Hier mal mein Code:
std::ofstream write; write.open("bin\\Scores.txt", std::ios_base::app); SYSTEMTIME s; GetSystemTime(&s); std::string date = sConvertIntToString(s.wHour + 2)+"."+sConvertIntToString(s.wMinute)+" Uhr" + " " + "Am "+sConvertIntToString(s.wDay)+"-"+sConvertIntToString(s.wMonth)+"-"+sConvertIntToString(s.wYear) + " " + "Points: " + sConvertIntToString(mEngine->getPoints()) + ";"; write << date << std::endl;; write.close();
-
Hast du mal geprüft, ob die Datei überhaupt geöffnet wird?
-
WIe genau meinst du das? Also das er in die Datei immer wieder neu schreibt sehe ich, da er ja die aktuelle Uhrzeit reinschreibt.
-
std::fstream fs("some.txt"/*, flags */); if(!fs) { // Datei öffnen fehlgeschlagen }
-
Ja habe ich überprüft, es schlug aber nicht fehl
-
Ich sehe eigentlich nur zwei Möglichkeiten: entweder du zeigst nicht den richtigen Code, oder die Datei wird zwischendrin gelöscht.