Filehandling: In die letzte Zeile rutschen



  • Hi,
    kurze Frage:
    Wenn ich eine Datei(.txt) mit einem ofstream öffne, wie kann ich dann in die
    letzte Zeile rutschen?


  • Mod

    Die Position musst du dir selber suchen. Also zum Ende gehen und das letzte Zeilenende suchen. Das kann man mehr oder weniger geschickt machen - es hilft auch sehr, wenn man Zusatzinformationen wie die ungefähre Länge der letzten Zeile hat.



  • #include <iostream>
    #include <fstream>
    #include <string>
    
    int main()
    {
    	std::ifstream file("a.txt");
    
    	if (file)
    	{
    		std::string line;
    		while (std::getline(file, line));
    
    		std::cout << "Letzte Zeile: " << line << std::endl;
    	}
    }
    

    Das wäre der einfachste Ansatz.



  • Wenn du etwas ans Ende einer Datei anhängen willst, dann kann man das mit "ios::app"

    ofstream out("test.txt", ios::app);
    

    Somit bist du automatisch am Ende. Eine neue Zeile beginnst du dann mit dem Schreiben von \n.



  • ofstream stream("foobar.txt");
    stream.seekg(0, ios::end);
    int pos = stream.tellg();
    

    Oder was HighLigerBiMBam sagte..


Log in to reply