我永远无法理解如何在C中打印 unsigned long
数据类型 .
假设 unsigned_foo
是 unsigned long
,那么我尝试:
-
printf("%lu\n", unsigned_foo)
-
printf("%du\n", unsigned_foo)
-
printf("%ud\n", unsigned_foo)
-
printf("%ll\n", unsigned_foo)
-
printf("%ld\n", unsigned_foo)
-
printf("%dl\n", unsigned_foo)
并且所有这些都打印了某种 -123123123
数字而不是 unsigned long
.
8 回答
%lu
是unsigned long
的正确格式 . 听起来这里还有其他问题,例如内存损坏或未初始化的变量 . 或许可以向我们展示更大的图景在您尝试的所有组合中,
%ld
和%lu
是唯一有效的printf格式说明符 .%lu
(长无符号十进制),%lx
或%lX
(带有小写或大写字母的长十六进制)和%lo
(长八进制)是unsigned long类型变量的唯一有效格式说明符(当然,您可以添加字段宽度,精度,%
和l
之间的等修饰符 .%lu
for unsigned long%llu
for unsigned long longint
%d
对于 long int
%ld
long long int
%lld
对于 unsigned long long int
%llu
这会很有帮助 . . .
格式为
%lu
.请检查printf中的各种其他数据类型及其用法here
unsigned long的正确说明符是
%lu
.如果您没有得到预期的确切值,那么您的代码可能会出现一些问题 .
请在此处复制您的代码 . 那么也许有人可以更好地告诉你问题是什么 .
我有同样的问题 . 试试“%ul”,它对我有用 .