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.
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();
Jika mengepam tidak menyelesaikan isu, anda boleh menyemak status strim untuk menentukan sama ada ia beroperasi. Beberapa fungsi ahli tersedia untuk tujuan ini, termasuk:
Pertimbangkan program berikut:
#includeint 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!