日期,消息和货币应使用用户默认设置设置格式,但数字应在“ 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()
设置语言环境是否有理由/情况/用途?