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
960 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!

sumber:php.cn
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