所有 C++ 输入和输出流都有关联的语言环境; 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()
)。
因此,所有流的默认语言环境通常是“经典”语言环境。
关于c++ - 默认情况下,流具有哪个语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50448933/