Zeilensprung



  • Moin, wollte gerne das nach dem öffnen einer funktion eine txt erstellt wird und die ergebnisse gespeichert werden.

    Habe etwas geschrieben, jedoch geht es leider nicht.Denke der Fehler liegt darin.( das es so aussehen müßte file.seekg(55L, ios::beg); 55 ist die zeile,diese müßte sich immer ändern. )
    int zeile=0;

    funk()
    {
    fstream datei;
    datei.open("results.txt", ios::out);
    zeile++;
    datei.seekg(zeile, ios::beg);
    datei << "Q[1]= "<<Q[1] << endl;
    datei << "Q[2]= " <<Q[2] << endl;
    datei.close();
    }



  • Du kannst auch nicht seeken in einer neu erstellten Datei. Wohin auch?
    Nur zurück aber nicht vorwärts ausser zu EOF und das ist immer nach der aktuellen position. Was genau geht denn nicht (Compilererror, Crash) und wie solls aussehen?
    rya.



  • er führt es aus. Erstellt die variablen. Aber immer nur die letzen beiden.

    Im Grunde müßte er die neu erstellten variablen ein paar zeilen später speichern und nicht die alter ersetzen.



  • Dann musst Du die Datei im append Modus öffnen :). Das tust Du aber nicht.

    datei.open("results.txt", ios::out|ios::app);
    

    Dann musst Du ans Ende der Datei seeken und dort reinschreiben. Einfach auf EOF seeken und mit tellg() kannst die Position abfragen.

    oder

    datei.open("results.txt", ios::out|ios::app|ios::ate);
    

    http://www.cplusplus.com/reference/iostream/ofstream/open/

    edit:
    Minimales Beispiel, getestet:

    #include <fstream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
        ofstream stream("results.txt", ios::out|ios::app|ios::ate);
        stream << "Result 1" << endl;
        stream << "Result 2" << endl;
    }
    

    Jedesmal wenn das Programm aufgerufen wird, werden die 2 Zeilen angehängt.
    rya.



  • danke du bist ein Genie 🙂

    👍 👍 👍 👍 👍 👍


Anmelden zum Antworten