Wozu braucht man << endl; ?
-
geschlossen
-
Zeilenumbruch + alle deine gepufferten Ausgaben werden sofort auf den Bildschirm rausgeschrieben.
-
Kann auch gleich jemand den Unterschied zwischen
cout << endl und cout << '\n' erklären?
-
std::cout << std::endl
bewirkt einen Zeilenumbruch und eine Leerung des Puffers.
'\n'
bewirkt einen Zeilenumbruch
-
'\n'
ist viel viel viel schneller
-
<< endl
entspricht quasi
<< '\n' << flush
-
geschlossen
-
nein, deshalb ist es ja schneller...
-
und ist erst bei sehr vielen Ausgaben überhaupt interessant ...
-
Also ich persönlich schreibe meistens "endl" solange die Ausgabe auf dem Bildschirm landet (und nicht etwa in einer Datei). "endl" schreibt sich einfach deutlich schneller als die 3 Sonderzeichen in "'\n'".
-
Man sollte das einsetzen was in einer konkreten Situation korrekt ist, und nicht das was schöner aussieht oder leicht zu schreiben ist.
-
flush() schrieb:
Man sollte das einsetzen was in einer konkreten Situation korrekt ist, und nicht das was schöner aussieht oder leicht zu schreiben ist.
std::endl
bewirkt, dass der internestreambuf
eines Streams seinen Puffer leert.Bei Dateien kann das den Stream maßgeblich verlangsamen, ist dort aber nötig.
Allerdings sollteendl
für die Standardausgabe (stdout
) auch nur verwendet werden, wo es wirklich nötig ist.
(Ja, es gibt Anwendungsfälle)
-
Man sollte auch wissen das ein Lesen von std::cin, std::cout automatisch flusht was die Fälle wo man wirklich std::endl braucht noch weiter verringert.