如何在C中打印“unsigned long”?
我永远不能理解如何在C中打印unsigned long
数据types
假设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
,我有。
%lu
是unsigned long
的正确格式。 听起来就像在这里玩的其他问题,如内存损坏或未初始化的variables。 也许向我们展示更大的图片?
在您尝试的所有组合中,只有%ld
和%lu
是有效的printf格式说明符。 %lu
(长无符号十进制), %lx
或%lX
(长hex,小写或大写字母)和%lo
(长八进制)是无符号长整型variables的唯一有效格式说明符(当然,您可以添加字段宽度,精度等修饰符在%
和l
)。
-
%lu
为unsigned long -
%llu
为unsigned long long
int main() { unsigned long long d; scanf("%llu",&d); printf("%llu",d); getch(); }
这将是有益的。 。 。
无符号long的正确说明符是%lu
。
如果你没有得到你期望的确切值,那么你的代码可能会有一些问题。
请在这里复制你的代码。 那么也许有人可以更好地告诉你这个问题是什么。
格式是%lu
。
请在这里查看 printf中各种其他数据types及其用法
对于int %d
长整型 %ld
很长一段时间int %lld
对于无符号long long int %llu