如何在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 ,我有。

%luunsigned long的正确格式。 听起来就像在这里玩的其他问题,如内存损坏或未初始化的variables。 也许向我们展示更大的图片?

在您尝试的所有组合中,只有%ld%lu是有效的printf格式说明符。 %lu (长无符号十进制), %lx%lX (长hex,小写或大写字母)和%lo (长八进制)是无符号长整型variables的唯一有效格式说明符(当然,您可以添加字段宽度,精度等修饰符在%l )。

  • %luunsigned long
  • %lluunsigned 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