c++ - 流默认具有哪种语言环境
问题描述
所有 C++ 输入和输出流都有一个关联的语言环境;该std::ios_base::getloc()
方法返回一个std::locale
值,因此该值必须在构造过程中设置。可以在构建流后使用imbue()
mutator 更改语言环境。但是流的默认语言环境是什么?std::ofstream
标准库类(等)的流在构建后具有什么语言环境?程序启动时标准流( 和 )的语言环境是std::cout
什么std:cerr
?std:log
我为流构造函数看到的文档没有帮助。
解决方案
所有流的最终基类std::basic_ios
,要求所有流的构造函数调用初始化方法std::basic_ios::init
。std::locale
该方法将流的语言环境初始化为默认构造函数给定的语言环境。如果全局语言环境未更改(使用) ,则该默认构造函数构造“全局语言环境”的副本,默认情况下这是“经典”语言环境。std::locale::global()
因此,所有流的默认语言环境通常是“经典”语言环境。
推荐阅读
- android - 如何以编程方式在android 10中恢复已删除的联系人
- reactjs - 单击带有反应表的单元格上的“编辑”按钮时如何使行可编辑
- ruby-on-rails - 如何在rails5中更新一些属性?
- r - 如何在回归模型中指定角度预测器(`sun_altitude`)的周期性?
- mysql - 如何有效地将动态行转换为 MySQL 中的列
- kotlin - 任务执行失败... void kotlin.jvm.internal.MutablePropertyReference1Impl。
(java.lang.Class, java.lang.String, java.lang.String, int) - python - NumPy - 任何 dtype 的降序稳定 arg-sort 数组
- c# - C# WPF Datagrid 验证规则 - 传递参数
- angular - 在 Angular 6 中使用延迟加载时,路由不适用于不同的路由
- ajax - 提交表单ajax后,滚动到表单顶部