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
Lepaskan: 2024-11-02 21:04:02
asal
1028 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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 Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan