Problem mit dem Umgang von Daten



  • Liebe Userinnen und User,

    in meinem aktuellen Projekt beschäftige ich mich mit dem Einschreiben und Lesen aus Dateien in C++. Hierzu verwende ich Streams. Doch folgendes Problem tritt auf:
    Schreibe ich via Konsolenanwendung Text in eine normale Textdatei (" ".txt) und beende ich das Programm, ist der Text in der Datei enthalten. Öffne ich dann aber die Konsolenanwendung ein weiteres mal, um den Text zu überschreiben oder zu erweitern, ist das schon Eingeschriebene verschwunden.
    Die Kurzform meiner Frage lautet also:
    Wie erhalten ich Text den ich über die Konsolenanwendungen eingeschrieben habe, trotz ständigen Öffnens dieser.
    Ich würde mich sehr über Lösungsvorschläge freuen!


  • Mod

    http://www.cplusplus.com/reference/iostream/fstream/fstream/

    Guck dir mal die verschiedenen Möglichkeiten für den openmode an.



  • schau dir hier mal bei den parametern des konstruktors den punkt mode an, dann weißt du, was du angeben musst, damit deine datei nicht überschrieben wird.

    Edir: verdammt zu spät



  • Danke für die Antworten, allerdings ist mir als Anfänger die Seite etwas zu unverständlich. Hättet ihr noch eine eigene Erklärung, die ich gut verstehe?



  • amichian schrieb:

    Danke für die Antworten, allerdings ist mir als Anfänger die Seite etwas zu unverständlich. Hättet ihr noch eine eigene Erklärung, die ich gut verstehe?

    Das Ios-Flag std::ios_base::trunc sorgt fuer automatische Leerung der zu oeffnenden Datei ( std::fstream/std::ofstream , bei ifstream macht das reichlich wenig Sinn).


  • Mod

    amichian schrieb:

    Danke für die Antworten, allerdings ist mir als Anfänger die Seite etwas zu unverständlich. Hättet ihr noch eine eigene Erklärung, die ich gut verstehe?

    std::ifstream file("datei.dat", std::ios::app);
    


  • Also diese Codezeile einfügen und der Text bleibt erhalten und wird nicht überschrieben?



  • SeppJ schrieb:

    amichian schrieb:

    Danke für die Antworten, allerdings ist mir als Anfänger die Seite etwas zu unverständlich. Hättet ihr noch eine eigene Erklärung, die ich gut verstehe?

    std::ifstream file("datei.dat", std::ios::app);
    

    sollte es nicht eher

    std::ofstream file("datei.dat", std::ios::app);
    

    heißen? Denn beim Lesen einer Datei wird doch nichts an die Datei angehängt *g*



  • firefly schrieb:

    SeppJ schrieb:

    amichian schrieb:

    Danke für die Antworten, allerdings ist mir als Anfänger die Seite etwas zu unverständlich. Hättet ihr noch eine eigene Erklärung, die ich gut verstehe?

    std::ifstream file("datei.dat", std::ios::app);
    

    sollte es nicht eher

    std::ofstream file("datei.dat", std::ios::app);
    

    heißen? Denn beim Lesen einer Datei wird doch nichts an die Datei angehängt *g*

    War ja nur ein Fluechtigkeitsfehler.


Anmelden zum Antworten