[C/C++] In verschiedene Zeilen schreiben

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von mhupfauer, 20. Juni 2012 .

Schlagworte:
  1. 20. Juni 2012
    In verschiedene Zeilen schreiben

    Hallo RR Community,

    ich verzweifele gerade an meinem C++ Proggie

    Code:
    //Lese- und Schreib Modul
    fstream f;
    f.open("Vocabeln.dat", ios::out);
    f << eingabe << endl;
    f.close();
    cout << "Erfolgreich gespeichert!" << endl;
    
    Das dort oben soll den String der Variable eingabe in die Datei Vocabeln.dat schreiben.
    Das funktioniert 1A. Jedoch ist es so, das dies in einer while schleife ist und solange der User in eine Variable 1 eingibt. Also wiederholt sich der Schreibvorgang immer wieder und auch in die gleiche Datei.
    Er soll aber nicht immer das, was schon drin steht überschreiben, sondern in einer neuen Zeile anfangen.

    Grüße
    mhupfauer
     
  2. 21. Juni 2012
    Zuletzt bearbeitet: 21. Juni 2012
    AW: In verschiedene Zeilen schreiben

    Du musst die Datei mit ios::app statt ios: ut öffnen.

    Das hier sollte dir helfen: c++.de :: An eine Datei Daten anhängen.
     
  3. 21. Juni 2012
    AW: In verschiedene Zeilen schreiben

    Danke,

    ios::app fixt das Problem, jedoch warum ?

    Aber trotzdem vielen vielen dank
     
  4. 21. Juni 2012
    AW: In verschiedene Zeilen schreiben

    Code:
     //Vocabel.dat wird eingelesen
     ifstream f; // Datei-Handle
    
     string s;
     f.open("Vocabeln.dat", ios::in); // Öffne Datei aus Parameter
     while (!f.eof()) // Solange noch Daten vorliegen
     {
     getline(f, s); // Lese eine Zeile
     cout << s;
    
     }
     f.close(); // Datei wieder schließen
     getchar();
    
    Mit diesem Code möchte ich Zeile für Zeile aus der Datei (Vocabeln.dat) auslesen.
    Jedoch spuckt er immer alles aus ohne leer bzw. zeilenumbruch.

    gespeichert wurde jedoch mit 2 Umbrüchen.
     
  5. 21. Juni 2012
    AW: In verschiedene Zeilen schreiben

    Hm, ich weiß nicht ganz was du erwartest. Aus der Dokumentation von std::getline:

    Sprich in der Variable s steht die gesamte Zeile ohne den Zeilenumbruch. Danach gibst du s einfach aus. Dann ist es klar, dass er direkt alles hintereinander ausgibt und da keine neue Zeile anfängt.
     
    1 Person gefällt das.
  6. 21. Juni 2012
    AW: In verschiedene Zeilen schreiben

    Danke Pyro,

    jedoch die Frage, wie ich dies ändern könnte
     
  7. 21. Juni 2012
    AW: In verschiedene Zeilen schreiben

    ios::app musst Du benutzen, wenn Du die Datei mehrmals öffnest, schreibst und wieder schließt. Das app steht hierbei für append, was soviel bedeutet wie "anhängen". D.h., Du überschreibst die vorhandene Datei nicht, sondern öffnest sie und setzt den Zeiger an das Ende der Datei und kannst von dort an direkt weiterschreiben. Solltest Du die Datei jedoch geöffnet lassen, musst Du lediglich ein std::endl mit reinschreiben, oder aber ein "\r\n".
     
    1 Person gefällt das.
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.