Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Memastikan Output Segera dalam C Menggunakan `std::flush`?

Bagaimana untuk Memastikan Output Segera dalam C Menggunakan `std::flush`?

DDD
DDDasal
2024-11-02 21:04:021010semak imbas

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

Menguatkuasakan Output Segera dalam C Menggunakan std::flush

Dalam program C, adalah perkara biasa untuk menghadapi senario di mana teks dicetak ke skrin menggunakan std::cout tidak muncul serta-merta. Ini boleh menjadi masalah, terutamanya apabila teks bertujuan untuk memberikan maklum balas masa nyata kepada pengguna semasa pengiraan jangka panjang sedang dilakukan.

Untuk menangani isu ini, pertimbangkan kod berikut:

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

Output #1 memberitahu pengguna bahawa pengiraan sedang dijalankan, manakala Output #2 menandakan selesainya. Walau bagaimanapun, Output #1 mungkin tidak muncul pada skrin sehingga selepas pengiraan() kembali.

Nasib baik, terdapat penyelesaian mudah: memperkenalkan std::flush. Memasukkan std::flush ke dalam kod memaksa penimbal std::cout dicetak dengan serta-merta ke skrin:

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

Ini memastikan Output #1 dipaparkan sebelum panggilan computations(), memberikan pengguna maklum balas visual segera.

Sebagai alternatif, bukannya std::cout, seseorang boleh menggunakan std::cerr, yang menulis kepada aliran ralat standard. Secara lalai, std::cerr mengepam penimbalnya serta-merta, menyelesaikan masalah tanpa memerlukan std::flush.

Atas ialah kandungan terperinci Bagaimana untuk Memastikan Output Segera dalam C Menggunakan `std::flush`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn