ホームページ  >  記事  >  バックエンド開発  >  `cout` と `wcout` をエラーなく混在させることはできますか?

`cout` と `wcout` をエラーなく混在させることはできますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-14 17:13:01462ブラウズ

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

cout と wcout の混合

「C クックブック」で読んだとおり、次のコードはエラーになる可能性があります。

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

これは「ストリーム指向」と​​いう概念によるものです。ストリームの作成後、ストリームに対して操作が実行される前は、方向性がありません。ただし、ワイド文字入出力関数 (wcout など) が適用されるとワイド指向のストリームになり、バイト入出力関数 (cout など) が適用されるとバイトストリームになります。

C 標準では、「バイト入出力関数はワイド指向ストリームに適用されず、ワイド文字入出力関数はバイト指向ストリームに適用されない」と規定されています。 (C 標準 [7.19.2])。

指定したコードの場合、cout は stdout をバイト指向のストリームに設定します。したがって、標準に従って、wcout を stdout で使用するべきではありません。ただし、実際には、一部のコンパイラや環境では、同じストリーム上でワイド文字出力関数とバイト指向の出力関数を混在させることができる場合があります。この動作はコンパイラのバージョンとプラットフォームによって異なる場合があります。

以上が`cout` と `wcout` をエラーなく混在させることはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。