プログラム内の cout と wcout の混在
この問題は、プログラム内で cout と wcout が混在することに関する警告が表示されたときに発生します。しかし、さらなる調査により、この問題について対照的な意見が明らかになりました。
C 標準 [27.4.1] によれば、ワイド文字ストリームとナロー文字ストリームの混合操作は、以下で概説されているように、ファイル上でのそのような操作の混合と同じセマンティクスに従う必要があります。 ISO C 標準の修正 1。C 標準 [7.19.2] はさらに、バイト指向であろうとワイド指向であろうと、ストリームの方向を設定したら、次のようにする必要があることを強調しています。互換性のない関数と混合しないでください。
ただし、コンパイラの実装が異なると、ストリームの方向に関して動作が異なる可能性があることに注意することが重要です。たとえば、Visual C は明らかに標準の要件を無視しており、cout と wcout の混在を許可しています。
gcc の場合、ストリーム指向として知られる機能が実装されています。ストリームの向きに関連する問題を回避するには、プログラムの開始時に std::ios::sync_with_stdio(false) を呼び出すことをお勧めします。
要約すると、C 標準では、ストリームのために cout と wcout を混合しないようにアドバイスしています。方向性によっては、特定のコンパイラ実装には回避策やストリーム処理の異なる解釈がある場合があります。適切な実装には、特定のコンパイラのドキュメントを参照し、推奨される方法を使用することが重要です。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3