繁体   English   中英

在Windows中使用C打印带有数千个分隔符的整数

[英]Printing integers with thousands separators in Windows using C

我想这个问题是不言而喻的。 我正在使用printf和朋友(snprintf等)来显示一些数百万或数十万范围的内存统计信息。 以我的懒惰思维方式,读取格式为“ 1,523,556”的数字比“ 1523556”要容易得多。

我尝试设置语言环境并在格式说明符(%'d和%'llu)之前使用撇号标志,但是撇号显然是SUS的标准,因此无论如何我都无法在Windows下使用撇号。

是否有Windows专用的API可以执行此操作? 我正在使用Pelles C和直接在ANSI C99中进行编程。

**编辑**

阅读答案和与之相关的MSDN页面之后,我了解了为什么.NET现在是Windows编程的首选方法。 它可以简化大量的API工作。

Win32 API确实提供了一种功能,该功能将格式化具有数千个分组(或适合于指定语言环境的任何分组)的数字: GetNumberFormat()http://msdn.microsoft.com/zh-cn/library/dd318110.aspx )。

不幸的是,这是一个非常痛苦的API的使用-不像SUS中的撇号格式说明符那么简单(另一方面,您获得了很多灵活性来换取复杂性)

使用GetNumberFormatEx (对于Windows Vista和更高版本)。 选项LOCALE_NAME_USER_DEFAULT使用在“控制面板”中的区域和语言选项下设置的首选项,包括数千个分隔符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM