Heim >Backend-Entwicklung >C++ >Wie stellt man mit „std::flush' eine sofortige Ausgabe in C sicher?
Erzwingen der sofortigen Ausgabe in C mit std::flush
In C-Programmen kommt es häufig vor, dass ein Szenario auftritt, in dem Text in das gedruckt wird Der Bildschirm mit std::cout wird nicht sofort angezeigt. Dies kann problematisch sein, insbesondere wenn der Text dem Benutzer Echtzeit-Feedback geben soll, während Berechnungen mit langer Laufzeit ausgeführt werden.
Um dieses Problem zu beheben, betrachten Sie den folgenden Code:
<code class="cpp">std::cout << "Beginning computations..."; // Output 1 computations(); std::cout << " done!\n"; // Output 2</code>
Ausgabe Nr. 1 informiert den Benutzer darüber, dass Berechnungen im Gange sind, während Ausgabe Nr. 2 deren Abschluss signalisiert. Ausgabe Nr. 1 wird jedoch möglicherweise erst nach der Rückkehr von computations() auf dem Bildschirm angezeigt.
Glücklicherweise gibt es eine einfache Lösung: die Einführung von std::flush. Das Einfügen von std::flush in den Code erzwingt, dass der std::cout-Puffer sofort auf dem Bildschirm ausgegeben wird:
<code class="cpp">std::cout << "Beginning computations..." << std::flush;</code>
Dadurch wird sichergestellt, dass Ausgabe Nr. 1 vor dem Aufruf von computations() angezeigt wird, was dem Benutzer Folgendes anzeigt sofortiges visuelles Feedback.
Alternativ könnte man anstelle von std::cout auch std::cerr verwenden, das in den Standardfehlerstrom schreibt. Standardmäßig leert std::cerr seinen Puffer sofort und löst so das Problem, ohne dass std::flush erforderlich ist.
Das obige ist der detaillierte Inhalt vonWie stellt man mit „std::flush' eine sofortige Ausgabe in C sicher?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!