将语言环境设置为用户首选的语言环境,std :: locale :: numeric除外

时间:2018-11-11 15:45:13

标签: c++ locale

日期,消息和货币应使用用户默认设置设置格式,但数字应在“ 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);

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

0 个答案:

没有答案