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


  • Mod

    Nimm out | ate



  • SeppJ schrieb:

    Nimm out | ate

    Hatte 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?


  • Mod

    kasper schrieb:

    SeppJ schrieb:

    Nimm out | ate

    Hatte 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, binary habe ich noch vergessen. Dann wird auch das ate überflüssig.



  • SeppJ schrieb:

    kasper schrieb:

    SeppJ schrieb:

    Nimm out | ate

    Hatte 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, binary habe ich noch vergessen. Dann wird auch das ate ü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^^)


Anmelden zum Antworten