In C ist der Standardausgabestream (std::cout) gepuffert, was bedeutet, dass er sammelt Daten, bevor sie an das eigentliche Ausgabegerät gesendet werden. Dieses Verhalten kann zu unerwarteten Situationen führen, in denen std::cout scheinbar nichts ausgibt.
Um sicherzustellen, dass Daten sofort angezeigt werden, ist es wichtig, den Stream zu leeren nachdem ich darauf geschrieben habe. Dies kann mit dem Stream-Manipulator std::endl erreicht werden, der sowohl ein Zeilenumbruchzeichen ausgibt als auch den Stream leert.
std::cout << "Hello" << std::endl;
Alternativ kann der Stream-Manipulator std::flush verwendet werden, um den Stream ohne zu leeren Ausgabe zusätzlicher Zeichen.
std::cout << "Hello"; std::cout.flush();
Wenn das Spülen das Problem nicht löst Wenn das Problem auftritt, können Sie den Status des Streams überprüfen, um festzustellen, ob er betriebsbereit ist. Zu diesem Zweck stehen mehrere Mitgliedsfunktionen zur Verfügung, darunter:
Bedenken das folgende Programm:
#includeint main() { std::cout << "Hello" << std::endl; return 0; }
Wenn das Programm ausgeführt wird, wird wie erwartet „Hallo“ angezeigt. Wenn jedoch der std::endl-Flush entfernt wird, wird die Ausgabe möglicherweise erst angezeigt, wenn das Programm beendet wird.
Das obige ist der detaillierte Inhalt vonWarum wird mein „std::cout' nicht gedruckt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!