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

标签 c windows number-formatting

我想这个问题是不言自明的。我正在使用 printf 和 friend (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/en-us/library/dd318110.aspx)。

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

关于c - 使用 C 在 Windows 中打印带有千位分隔符的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4109006/

相关文章:

Windows批处理脚本来查看一系列服务器/端口是否打开?

C++ WinSDK 头文件编译错误

c# - 从指数表示法解析数字

dart - Dart -NumberFormat

c# - 在 C# 中,是否有任何理由在十进制格式的左侧有相邻的#?

c - C 编程中字符数据类型的错误处理

c - 错误 : conflicting types for ‘strlen’

c - 将结构数组传递给 C 中的函数

c - 如何从函数中的数组返回结构? (指针)

c++ - 获取用户相关进程/窗口的列表