Rumah > pembangunan bahagian belakang > C++ > Bolehkah Anda Campurkan `cout` dan `wcout` tanpa Ralat?

Bolehkah Anda Campurkan `cout` dan `wcout` tanpa Ralat?

Linda Hamilton
Lepaskan: 2024-11-14 17:13:01
asal
535 orang telah melayarinya

Can You Mix `cout` and `wcout` without Errors?

Mencampurkan cout dan wcout

Seperti yang anda baca dalam "C Cookbook", kod berikut mungkin mengakibatkan ralat:

cout << s << std::endl; // You shouldn't be able to
wcout << ws << std::endl; // run these at the same time
Salin selepas log masuk

Ini disebabkan oleh konsep "orientasi aliran". Selepas strim dicipta, tetapi sebelum sebarang operasi dilakukan padanya, ia adalah tanpa orientasi. Walau bagaimanapun, sebaik sahaja fungsi input/output aksara lebar (seperti wcout) digunakan padanya, ia menjadi aliran berorientasikan luas, dan sebaik sahaja fungsi input/output bait (seperti cout) digunakan padanya, ia menjadi bait- strim berorientasikan.

Piawaian C menentukan bahawa "Fungsi input/output bait tidak boleh digunakan pada strim berorientasikan lebar, dan fungsi input/output aksara lebar tidak boleh digunakan pada strim berorientasikan bait." (C Standard [7.19.2]).

Dalam kes kod yang anda berikan, cout menetapkan stdout sebagai strim berorientasikan bait. Selepas itu, wcout tidak boleh digunakan pada stdout mengikut piawaian. Walau bagaimanapun, dalam amalan, sesetengah penyusun dan persekitaran mungkin membenarkan mencampurkan fungsi keluaran berorientasikan lebar dan berorientasikan bait pada aliran yang sama. Tingkah laku ini mungkin bergantung pada versi pengkompil dan platform.

Atas ialah kandungan terperinci Bolehkah Anda Campurkan `cout` dan `wcout` tanpa Ralat?. 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