首页 > 解决方案 > 将语言环境设置为用户首选的语言环境,除了 std::locale::numeric

问题描述

日期、消息和货币应在用户默认设置中格式化,但数字应在“C”语言环境中解析和打印。这就是我们现在的做法:

setlocale(LC_NUMERIC, "C");

//
// this is supposed to set the current locale but C locale for numeric and messages. See https://msdn.microsoft.com/de-de/library/1w3527e2.aspx
std::locale loc(std::locale::empty());
std::locale loc1(loc, std::locale::classic(), std::locale::numeric);
std::locale::global(loc1);

这是设置这种语言环境的正确方法吗?看起来有些麻烦。setlocale()此外,通过 C和 CPP设置语言环境是否有理由/案例/用途std::locale::global()

标签: c++locale

解决方案


推荐阅读