endl ohne Zeilenumbruch
-
Danke manni66 !!!!!!!!!!

Es hat geklappt mit cerr und flush !!!
Hier der Code:
#include <iostream> #include <time.h> void sleep(unsigned int mseconds) { clock_t goal = mseconds + clock(); while (goal > clock()); } int main() { char example [] = "Hallo du da !"; for ( int i = 0; i < 13; i++ ) { cerr << example[ i ] << flush; sleep(200); } }Könntest du mir jetzt noch erklären wieso das so funktioniert? Will ja auch dazu lernen bin ja eher neu auf dem Gebiet. also wieso das mit ceer funktioniert. Warum ich flush verwenden muss habe ich ja mittlerweile verstanden.
MfG Train
-
cerr ist so ähnlich wie cout, ist aber eigentlich für die Ausgabe von Fehlern gedacht. Vermutlich verarbeitet deine Entwicklungsumgebug die Ausgaben mit cerr irgendwie anders.
-
cout ist oft aus Geschwindigkeitsgründen gepuffert, cerr in der Regel nicht, da man eine Fehlermeldung, die ein Programm kurz vorm Absturz ausgibt, nach Möglichkeit auch sehen will.
-
ah ok. Danke für die Hilfe

-
manni66 schrieb:
cout ist oft aus Geschwindigkeitsgründen gepuffert
Deshalb hat er ja zunächst (vergeblich)
cout << ... << flush;angehängt ...
-
Belli schrieb:
manni66 schrieb:
cout ist oft aus Geschwindigkeitsgründen gepuffert
Deshalb hat er ja zunächst (vergeblich)
cout << ... << flush;angehängt ...
Das Problem ist nur, dass es mehrere Ebenen geben kann, auf denen gepuffert wird und das flush nicht notwendigerweise auch auf allen Ebenen ausgeführt wird. Mag sein, dass das als Fehler der Implementierung zu werten ist.
-
Naja, ich denke das Problem ist dass
couthier zeilengepuffert ist.
Für nur "normal gepuffert" sollte flush definitiv reichen.