用于Windows C ++程序的默认语言环境

时间:2014-10-15 19:28:15

标签: c++ c windows locale setlocale

有没有人见过某个程序默认使用Windows操作系统本地语言环境而不是' C' locale(程序是C ++)?

我有一个C ++程序,当将double转换为字符串时,将用逗号替换所有小数符号(原来是点)。

如果我将以下代码插入程序

,我只能重现此行为
char* cpSettings =  std::setlocale(LC_ALL, ""); // use native locale (Spanish), not C

但是,此程序/软件的版本(更改为逗号(对于十进制符号))没有此行代码,因此默认情况下应使用c-locale。

此程序仅在一台特定计算机上将double转换为字符串时将点转换为逗号(十进制符号)。

我认为这与区域设置有关,但即使将混乱的机器上的区域设置更改回英语(使用小数点),程序仍然会在双字符串转换中用逗号替换点。

问题:我想知道以前有没有人见过这种行为?有谁知道可能导致这种行为的原因是什么?

0 个答案:

没有答案