fstream modes
-
Hallo zusammen
Ich hab gerade zum ersten Mal die fstream Klasse benützt und habe mich dabei ziemlich ab den Online Referenzen, wie z.B. www.cplusplus.com gewundert.
Ich wollt jetzt nur gerade meine Erfahrungen absichern, da ich ehrlich gesagt etwas erstaunt bin:
Ich will in mein File schreiben, erstelle dazu ein Objekt der Klasse ofstream, zuerst mit fstream::app als Mode - keine Überraschungen, wie in der Referenz beschrieben lässt sich wunderbar einfach ans Ende der Datei schreiben.
Dann ohne fstream::app - nach Referenz müsste das Objekt dann als Outputstream geöffnet sein. Überraschung: bei jedem Output wird der vorherige Inhalt gekippt. Irgendwo nach langem suchen lese ich dann, dass wenn nur fstream::out gesetzt ist, fstream::trunc automatisch auch gesetzt ist?! Davon steht in der Referenz nicht mal ansatzweise was (oder hab ich ne Fussnote verpasst..)?
Krieg ich das trunc da irgendwie raus, wenn ich meinen Output in die Mitte des alten Files schreiben will, oder ist da tatsächlich die einzige Möglichkeit (wie ichs jetzt gemacht habe), ein fstream Objekt mit fstream::in|fstream::out zu verwenden? Was soll das Ganze?Gruss
-
Nimm
out | ate
-
SeppJ schrieb:
Nimm
out | ateHatte ich durchaus auch, der Inhalt des Files wurde aber trotzdem beim Öffnen gelöscht wenn ich die ofstream Klasse verwendet habe.
Ist das tatsächlich so mit dem truncated in der ofstream Klasse?
-
kasper schrieb:
SeppJ schrieb:
Nimm
out | ateHatte ich durchaus auch, der Inhalt des Files wurde aber trotzdem beim Öffnen gelöscht wenn ich die ofstream Klasse verwendet habe.
Ist das tatsächlich so mit dem truncated in der ofstream Klasse?Ach,
binaryhabe ich noch vergessen. Dann wird auch dasateüberflüssig.
-
SeppJ schrieb:
kasper schrieb:
SeppJ schrieb:
Nimm
out | ateHatte ich durchaus auch, der Inhalt des Files wurde aber trotzdem beim Öffnen gelöscht wenn ich die ofstream Klasse verwendet habe.
Ist das tatsächlich so mit dem truncated in der ofstream Klasse?Ach,
binaryhabe ich noch vergessen. Dann wird auch dasateüberflüssig....Was aber nicht viel Sinn ergibt wenn man in ein Textfile schreibt...
Mit binary gesetzt wird das truncated-byte gelöscht? Wo find ich diese Infos?
(und warum verdammt steht von all dem nichts in der referenz^^)