Was bringt std::endl im stringstream?



  • Hallo! Ich befülle einen stringstream mit Wörtern. Darin bräuchte ich einige Newlines. Beispiel

    std::stringstream s;
    s << "Hallo" << std::endl;
    s << "Welt" << std::endl;

    Jetzt hab ich mich gefragt was das std::endl überhaupt in einem stringstream bringt und ob ich nicht lieber \n benutzt sollte.

    Ich weiß das std::endl == \n + std::flush, aber der stringstream befindet sich ja nur im Speicher. Was bringt da das flushen?



  • gar nix. nimm lieber ends um das ende zu kennzeichnen und benutz bei normalen ostreams auch kein endl, sondern nur ein '\n'. der stream wird am ende des programms sowieso automatisch geflusht.



  • Nicht nur am ende. Wenn der Puffer voll ist vermutlich auch und spätestens dann, wenn der Stream zerstört wird.

    Ein

    const char newl = '\n';
    

    kann einem das Leben vereinfachen. Jetzt kannst du newl statt wie gewohnt endl schreiben.



  • @Helium: mit "const char nl = '\n'" wird sogar die schreibarbeit verkürzt 😉


Anmelden zum Antworten