C ++ printf与%f但本地化为用户的国家

我正在使用以下C ++语法在Windows平台上输出浮点值:

printf("%.2f", 1.5); 

如果我在英文用户帐户上运行,效果很好。 我的假设是,如果我运行它,说法语用户帐户,输出将是1,50而不是1.50。

为什么我没有看到它,以及如何产生我想要的结果?

基数字符(即“。”或“,”)由当前语言环境定义。 默认语言环境(至少对于Windows系统)是“C”,它定义了“。” 作为基数字符。

您可以使用setlocale函数为C / C ++程序设置当前的语言环境。

要将语言环境设置为当前系统/用户区域设置,可以使用以下语句:

 #include <locale.h> setlocale(LC_ALL, ".OCP"); 

请参阅此处 (参见链接页面上的示例…)以获取有关setlocale更多信息