默认情况下,流具有哪种语言环境

时间:2018-05-21 12:28:21

标签: c++ localization

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

我在流构造函数中看到的文档没有用。

1 个答案:

答案 0 :(得分:1)

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

因此,所有流的默认语言环境通常都是" classic"区域设置。