c++ - 默认情况下,流具有哪个语言环境

标签 c++ localization

所有 C++ 输入和输出流都有关联的语言环境; std::ios_base::getloc()方法返回 std::locale按值,因此该值必须在构建期间设置。可以在构建流后使用 imbue() 更改语言环境。突变体。但是流的默认语言环境是什么?标准库类的流(std::ofstream 等)刚刚构建后有什么语言环境?程序启动时标准流(std::coutstd:cerrstd:log)的语言环境是什么?

我看到的关于流构造函数的文档没有帮助。

最佳答案

所有流的最终基类,std::basic_ios ,要求所有流的构造函数调用初始化方法std::basic_ios::init .该方法将流的语言环境初始化为 std::locale default constructor 给出的语言环境.该默认构造函数构造了“全局语言环境”的拷贝,即 "classic" locale。默认情况下,如果全局语言环境未更改(使用 std::locale::global() )。

因此,所有流的默认语言环境通常是“经典”语言环境。

关于c++ - 默认情况下,流具有哪个语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50448933/

相关文章:

c++ - PortAudio:通过调用函数播放多个生成的声音

c++ - 不断增加物理内存 Visual C++ CryptMsgClose 和 CryptReleaseContext

asp.net-mvc - 如何使用 ResX 资源发布/部署 MVC 项目?

c - 尝试删除单词的第一个字符并将其放在末尾

c++ - adjacent_find 不检测最后两个元素

c++ - 使用 for 循环和指针打印 float 组

c++ - 为什么我们需要虚拟表?

c# - 是否有用于 Visual C# 2005 的字符串表资源?

winforms - SSRS ReportViewer 中的日期时间格式始终使用 en-US?

ios - NSLocationWhenInUseUsageDescription 的 Xamarin.iOS 本地化