如何用C语言格式化从1123456789
到1,123,456,789
的数字?
我尝试使用printf("%'10d\n", 1123456789);
,但这不起作用。
你能建议什么吗?解决方案越简单越好。
最佳答案
如果您的printf支持'
标志(这是POSIX 2008 printf()
的要求),则可以仅通过适当地设置区域设置就可以做到这一点。例:
#include <stdio.h>
#include <locale.h>
int main(void)
{
setlocale(LC_NUMERIC, "");
printf("%'d\n", 1123456789);
return 0;
}
并运行:
$ ./example
1,123,456,789
在Mac OS X和Linux(Ubuntu 10.10)上进行了测试。