在程序中混合 cout 和 wcout
当遇到有关在程序中混合 cout 和 wcout 的警告时,就会出现问题。然而,进一步的调查揭示了对此事的不同看法。
根据 C 标准 [27.4.1],混合宽字符流和窄字符流操作应遵循与在 FILE 上混合此类操作相同的语义,如中所述ISO C 标准的修订 1。C 标准 [7.19.2] 进一步强调,一旦设置了流的方向,无论是面向字节还是面向宽,就不应再更改。与不兼容的函数混合在一起。
但是,需要注意的是,不同的编译器实现可能在流方向方面有不同的行为。例如,Visual C 显然无视标准的要求,并允许 cout 和 wcout 混合。
对于 gcc,已经实现了一种称为流定向的功能。为了避免与流方向相关的问题,建议在程序启动时调用 std::ios::sync_with_stdio(false)。
总而言之,虽然 C 标准建议不要因流而混合 cout 和 wcout方向,某些编译器实现可能有变通方法或对流处理的不同解释。参考特定编译器的文档并使用推荐的实践对于正确实现至关重要。
以上是在 C 程序中混合使用'cout”和'wcout”是否安全?的详细内容。更多信息请关注PHP中文网其他相关文章!