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

Mengapa `std::cout` Saya Tidak Dicetak?

Linda Hamilton
Linda Hamiltonasal
2024-12-13 04:50:10723semak imbas

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;

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

std::cout << "Hello";
std::cout.flush();

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;
}

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!

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