Rumah > pembangunan bahagian belakang > C++ > Mengapa Anda Perlu Mengelakkan Mencampurkan Cout dan Wcout dalam Program C yang Sama?

Mengapa Anda Perlu Mengelakkan Mencampurkan Cout dan Wcout dalam Program C yang Sama?

Mary-Kate Olsen
Lepaskan: 2024-11-14 14:11:02
asal
798 orang telah melayarinya

Why Should You Avoid Mixing cout and wcout in the Same C   Program?

Mencampurkan aliran keluaran lebar dan sempit dalam program yang sama

Dalam "C Cookbook", disebutkan bahawa mencampurkan cout dan wcout dalam program yang sama tidak boleh dilakukan. Komen ini berpunca daripada fakta bahawa piawaian C dan C menentukan bahawa strim mempunyai orientasi, dan setelah orientasi ini ditetapkan untuk strim, anda tidak seharusnya mencampurkan operasi yang tidak serasi dengan orientasi.

Apa adakah ini bermakna dalam amalan?

Apabila cout atau wcout dipanggil buat kali pertama, orientasi untuk stdout menjadi ditetapkan. Dalam kes cout, stdout menjadi aliran berorientasikan bait, dan dalam kes wcout, stdout menjadi aliran berorientasikan luas. Mengikut standard C [27.4.1] dan standard C [7.19.2], setelah orientasi strim ditetapkan, anda tidak seharusnya memanggil fungsi yang tidak serasi dengan orientasi strim tersebut.

Pengecualian kepada peraturan

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa tidak semua penyusun mengikut piawaian ini dengan ketat. Sebagai contoh, dalam Visual C 10.0, fungsi fwide (digunakan untuk menetapkan orientasi aliran) tidak dilaksanakan. Oleh itu, dalam Visual C , mencampurkan cout dan wcout dibenarkan.

Begitu juga, dalam versi awal GCC, disebabkan pepijat yang telah diperbaiki, adalah mungkin untuk memanggil cout dan wcout dalam program yang sama dengan memanggil std ::ios::sync_with_stdio(false); pada permulaan program.

Walau bagaimanapun, adalah penting untuk diingat bahawa ini adalah pengecualian kepada peraturan. Secara umum, tidak disyorkan untuk mencampurkan aliran keluaran yang luas dan sempit dalam program yang sama, kerana ini boleh membawa kepada tingkah laku yang tidak dijangka atau hasil yang tidak ditentukan.

Atas ialah kandungan terperinci Mengapa Anda Perlu Mengelakkan Mencampurkan Cout dan Wcout dalam Program C yang Sama?. 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