Rumah > pembangunan bahagian belakang > C++ > Mengapa `std::cout` Saya Tidak Dicetak?

Mengapa `std::cout` Saya Tidak Dicetak?

Linda Hamilton
Lepaskan: 2024-12-13 04:50:10
asal
716 orang telah melayarinya

Why Doesn't My `std::cout` Print?

Apabila std::cout Tidak Mencetak: Menyelesaikan Masalah Aliran Penimbalan

Dalam C , aliran keluaran standard (std::cout) ditimbal, bermakna ia mengumpul data sebelum menghantarnya ke peranti output sebenar. Tingkah laku ini boleh membawa kepada situasi yang tidak dijangka di mana std::cout nampaknya tidak mencetak apa-apa.

Kepentingan Flushing

Untuk memastikan data dipaparkan dengan segera, adalah penting untuk mengepam strim selepas menulis kepadanya. Ini boleh dicapai menggunakan manipulator strim std::endl, yang kedua-duanya mengeluarkan aksara baris baharu dan menyiram strim.

std::cout << "Hello" << std::endl;
Salin selepas log masuk

Sebagai alternatif, manipulator strim std::flush boleh digunakan untuk mengepam strim tanpa mengeluarkan sebarang aksara tambahan.

std::cout << "Hello";
std::cout.flush();
Salin selepas log masuk

Menyemak Status Strim

Jika mengepam tidak menyelesaikan isu, anda boleh menyemak status strim untuk menentukan sama ada ia beroperasi. Beberapa fungsi ahli tersedia untuk tujuan ini, termasuk:

  • std::ios::good: Mengembalikan benar jika strim sedia untuk digunakan.
  • std::ios::bad: Mengembalikan benar jika ralat maut telah berlaku.
  • std::ios::fail: Mengembalikan benar jika ralat bukan maut telah berlaku.

Contoh

Pertimbangkan program berikut:

#include 

int main() {
  std::cout << "Hello" << std::endl;
  return 0;
}
Salin selepas log masuk

Jika program dilaksanakan, "Hello" akan dipaparkan seperti yang diharapkan. Walau bagaimanapun, jika std::endl flush dialih keluar, output mungkin tidak muncul sehingga program ditamatkan.

Atas ialah kandungan terperinci Mengapa `std::cout` Saya Tidak Dicetak?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan