C / C ++:printf使用逗号代替点作为小数分隔符

我需要我的程序使用逗号作为小数分隔符显示输出。

根据这个链接: http : //www.java2s.com/Code/Java/Development-Class/Floatingpointwithcommasf.htm你可以在Java中使用这样的东西:

System.out.printf("Floating-point with commas: %,f\n", 1234567.123); 

是否有标志或其他东西我可以用来在C中有类似的行为?

提前致谢!

如果需要,可以在程序开头设置当前区域设置:

 #include  #include  int main() { setlocale(LC_NUMERIC, "French_Canada.1252"); // ".OCP" if you want to use system settings printf("%f\n", 3.14543); return 0; } 

C没有类似的function。 您可以使用sprintf打印到char数组,然后手动用逗号替换该点。 对不起,我想不出更好的解决方案。

编辑:感谢Mats Patersson的评论:似乎设置语言环境可以改变这个角色。 请查看他发布的链接。