ホームページ  >  記事  >  バックエンド開発  >  `std::flush` を使用して C で即時出力を保証する方法

`std::flush` を使用して C で即時出力を保証する方法

DDD
DDDオリジナル
2024-11-02 21:04:02865ブラウズ

How to Ensure Immediate Output in C   Using `std::flush`?

std::flush を使用した C での即時出力の強制

C プログラムでは、テキストがstd::cout を使用した画面はすぐには表示されません。これは、特に長時間実行される計算の実行中にテキストがユーザーにリアルタイムのフィードバックを提供することを目的としている場合に問題となる可能性があります。

この問題に対処するには、次のコードを検討してください:

<code class="cpp">std::cout << "Beginning computations...";  // Output 1
computations();
std::cout << " done!\n";                   // Output 2</code>

出力 #1 は計算が進行中であることをユーザーに通知し、出力 #2 は計算の完了を通知します。ただし、出力 #1 は、computations() が戻るまで画面に表示されない可能性があります。

幸いなことに、std::flush を導入するという簡単な解決策があります。コードに std::flush を挿入すると、std::cout バッファが直ちに画面に出力されます:

<code class="cpp">std::cout << "Beginning computations..." << std::flush;</code>

これにより、computations() 呼び出しの前に出力 #1 が表示され、ユーザーに

また、std::cout の代わりに、標準エラー ストリームに書き込む std::cerr を使用することもできます。デフォルトでは、std::cerr はバッファを即座にフラッシュし、std::flush を必要とせずに問題を解決します。

以上が`std::flush` を使用して C で即時出力を保証する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。