所有C++输入和输出流都有一个相关的区域设置;这个 std::ios_base::getloc() 方法返回 std::locale 根据价值,因此价值必须在施工期间设定。在构建流之后,可以使用 imbue() 突变子。但是流的默认区域设置是什么?一个标准库类流使用什么语言环境( std::ofstream 等)施工结束后?标准流的区域设置是什么( std::cout , std:cerr 和 std:log )节目开始了吗?
std::ios_base::getloc()
std::locale
imbue()
std::ofstream
std::cout
std:cerr
std:log
我看到的流构造函数的文档是没有帮助的。
所有溪流中的终极基类, std::basic_ios ,要求所有流的构造函数调用初始化方法 std::basic_ios::init 。该方法将流的区域设置初始化为 std::locale default constructor 。该默认构造函数构造“全局语言环境”的副本,即 "classic" locale 默认情况下,如果全局区域设置未更改(使用 std::locale::global() ).
std::basic_ios
std::basic_ios::init
std::locale::global()
因此,所有流的默认区域设置通常为“经典”区域设置。