\n - endl - Puffer leeren
-
In einen FAQ von HumeSikkins über Datei-Ströme habe ich folgenden Satz gelesen.
HumeSikkins schrieb:
Mittels "endl" fügt man dem Puffer ein NewLine-Zeichen
hinzu und leert danach den Puffer.Nun meine Frage:
leert \n auch den Puffer?
Danke im Voraus.
Gruß nki
-
Nein, \n ist ein einfaches Newline-Zeichen, das vom Stream nicht gesondert betrachtet wird (abgesehen davon, daß es gelegentlich in \r\n umkodiert wird). Deshalb gibt es ja den speziellen Manipulator endl und flush (letzterer leert den Ausgabepuffer, OHNE vorher ein NewLine zu schreiben).
-
besten Dank für die schnelle Antwort.

-
nicht '\n' leert den puffer sondern endl, wobei cout<<endl; als cout<<'\n'<<flush; definiert ist und hierbei flush den puffer leert.
-
@bill: die Antwort von CStoll enhält mehr Wahrheitswert.
-
(D)Evil schrieb:
@bill: die Antwort von CStoll enhält mehr Wahrheitswert.
was genau hat denn deiner meinung nach weniger wahrheitswert ???
VS2003 Help schrieb:
template<class _Elem, class _Traits> inline basic_ostream<_Elem, _Traits>& __cdecl endl(basic_ostream<_Elem, _Traits>& _Ostr) { // insert newline and flush stream _Ostr.put(_Ostr.widen('\n')); _Ostr.flush(); return (_Ostr); }