如何在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