getline(.txt Datei) andersrum?



  • Hi,
    es gibt ja die Funktion getline() mit der man unteranderem aus einer Datei eine
    Zeile in einen string einlesen kann.
    Meine Frage ist: Gibts es dazu auch ein Gegenstück?
    weil:

    ofstream out;
    string s("123");
    out.open("out.txt",0);
    out << s //Geht nicht 
    out.close()
    

    Geht nicht..

    MFG!



  • doch klar geht das so...

    aber in der zeile:

    out.open("out.txt",0);
    

    was soll die 0 da?
    da gehören eigentlich die flags fürs öffnen rein (ob datei neu erstellt wird oder der text an vorhandenes drangehangen wird oder oder oder...)

    die 0 sorgt denke ich mal dafür dass du nichts reinschreiben kannst...

    obendrein bentuz doch RAII, also schreib statt

    ofstream out;
    out.open("out.txt");
    out.close();
    

    das hier

    ostream out("out.txt");
    out.close();
    


  • Wenn schon RAII, dann aber ohne out.close(). Die Filestreams in C++ werden durch den Destruktor geschlossen.



  • Ja aber wenn ich

    string s("123 123 123 123");
    out.open(/*...*/);
    out << s;
    out.close();
    

    mache, dann wird ja nach dem ersten Leerzeichen (nach 123) nichtmehr weitergemacht und das will ich verhindern.



  • Bei mir funktioniert das Schreiben.

    #include <string>
    #include <fstream>
    
    int main() 
    {
    	std::string s("123 123 123 123");
    	std::ofstream out("test.txt");
    
    	if(out)
    	{
    		out << s;
    	}
    }
    

    Es gibt auch noch das Flag

    std::ios_base::skipws
    

    http://www.cplusplus.com/reference/iostream/manipulators/skipws/


Log in to reply