Rumah > pembangunan bahagian belakang > C++ > Bolehkah Anda Campurkan `cout` dan `wcout` dalam C Tanpa Melanggar Piawaian?

Bolehkah Anda Campurkan `cout` dan `wcout` dalam C Tanpa Melanggar Piawaian?

Susan Sarandon
Lepaskan: 2024-11-11 22:55:03
asal
204 orang telah melayarinya

Can You Mix `cout` and `wcout` in C   Without Breaking the Standard?

Mencampurkan Aliran Aksara Luas dan Sempit: Memahami Keperluan Standard

Dalam C , mencampurkan cout (strim keluaran aksara sempit) dan wcout (lebar aliran keluaran aksara) dalam program yang sama menimbulkan persoalan tentang orientasi aliran.

The C Standard [27.4.1] menetapkan bahawa "operasi pada aliran aksara lebar dan sempit yang sepadan" harus mengikut semantik yang sama seperti operasi pencampuran pada FILE dalam Standard C. Merujuk kepada [7.19.2] dalam Standard C, adalah jelas bahawa fungsi input/output bait tidak seharusnya digunakan pada strim berorientasikan lebar dan fungsi input/output aksara lebar tidak boleh digunakan pada strim berorientasikan bait.

Ini menunjukkan bahawa pencampuran wcout dan cout dalam program yang sama harus dielakkan. Walau bagaimanapun, pengecualian wujud. Sebagai contoh, dalam Visual C 10.0, fungsi fwide yang bertanggungjawab untuk mengekalkan orientasi aliran dilaporkan tidak dilaksanakan. Ini bermakna bahawa gabungan cout dan wcout mungkin berfungsi dengan baik dalam persekitaran itu.

Begitu juga, "pepijat" dalam libstdc (libstdc /11705) membenarkan pencampuran I/O berorientasikan bait dan berorientasikan luas dengan memanggil std ::ios::sync_with_stdio(false). Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa tingkah laku ini tidak dijamin dan mungkin berbeza-beza bergantung pada pengkompil dan sistem pengendalian.

Oleh itu, walaupun piawaian mengesyorkan agar tidak mencampurkan cout dan wcout, adalah penting untuk mengetahui potensi pengecualian dan untuk memastikan pengendalian orientasi aliran yang betul apabila bekerja dengan penyusun atau persekitaran yang berbeza.

Atas ialah kandungan terperinci Bolehkah Anda Campurkan `cout` dan `wcout` dalam C Tanpa Melanggar Piawaian?. 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