Wenn fertig, bitte Fenster schließen

cout Pufferung

Wenn mittels cout eine Ausgabe erfolgt, so wird diese Ausgabe nicht sofort auf die Standardausgabe ausgegeben, sondern zunächst einmal in einen Ausgabepuffer kopiert. Der Grund dafür ist, dass das Schreiben in einen Ausgabepuffer in der Regel wesentlich schneller vonstattengeht als die direkte Ausgabe auf die Standard-Ausgabe. Erst wenn der Ausgabepuffer 'ausreichend' gefüllt ist, eine Eingabe erfolgen soll oder aber das Programm beendet wird, wird der Inhalt des Ausgabepuffers auf die Standardausgabe geschrieben.

In einigen Fällen kann es aber durchaus erwünscht sein, die Ausgabe sofort auf die Standardausgabe zu schreiben. Dazu gibt es zwei Möglichkeiten:

  1. Aufruf der Memberfunktion cout.flush() oder
  2. Beenden die Ausgabe mit einem Zeilenvorschub durch Aufruf des Manipulators endl.

Soll die cout-Ausgabe stets ungepuffert durchgeführt werden, so kann mittels cout.setf(std::ios::unitbuf) die Pufferung 'abgeschaltet' und mit cout.unsetf(std::ios::unitbuf) bei Bedarf wieder aktiviert werden.