Warum kann man Pointer nicht addieren?
-
Warum ständig
endl
?
-
Dann wird es in der Ausgabe übersichtlicher...
-
Er meint, warum endl statt '\n'. endl macht neben dem Zeilenumbruch noch ein flush.
-
Wie?? Was meinst Du mit flush??
-
-
Habe ich das richtig verstanden, dass die Anweisung
cout << endl;
alles auf null setzt und nur für einen Zeilenumbruch die Anweisung
cout << "\n"
besser ist??
-
Eigentlich ist es total egal, solange du nix I/O-lastiges schreibst.
Hintergrund ist, dass auf die Konsole schreiben sehr langsam ist, deswegen wird Text im Stream gesammelt und viel auf einmal geschrieben. Mit flush/endl sagst du dem Stream, dass er SOFORT alles schreiben soll, dh. möglicherweise werden mehr langsame Schreiboperationen ausgeführt.
Im Zweifelsfall einfach '\n'. endl/flush nur, wenn du die Ausgabe sofort brauchst und eine Verzögerung nicht akzeptabel ist.
-
Ok ... werde ich mir merken...
Mein Dozent im Fach Datenverarbeitungstechnik, wozu eben diese C++ Programmierung gehört, verwendet eigentlich nur
cout << endl;
Anweisungen, um einen Zeilenumbruch zu machen.
Dass es den Hintergrund hat, wusste ich an der Stelle nicht.
Gruß
-
Wie gesagt, es ist egal ob das Programm jetzt 300ms oder 400ms läuft.
Nur zb in einem Logging-Framework, das 100 Ausgaben pro Sekunde schreibt, kann so ein Flush Probleme machen.
-
std::endl() beinhaltet auch die unterschiedlichen Line-Endings (\n vs \r\n).
-
theta schrieb:
std::endl() beinhaltet auch die unterschiedlichen Line-Endings (\n vs \r\n).
New-line in C++ ist immer '\n', wie die Repräsentation des Betriebssystems aussieht ist egal.
-
theta schrieb:
std::endl() beinhaltet auch die unterschiedlichen Line-Endings (\n vs \r\n).
Diese Konvertierung spielt sich auf viel tieferer Ebene ab (das ist zum Beispiel das, was das binary bei fstreams beeinflusst). endl ist wirklich nur eine Abkürzung für
'\n' << flush()
.