繁体   English   中英

如何在 C 中 printf“无符号长”?

[英]How to printf "unsigned long" in C?

我永远无法理解如何在 C 中打印unsigned long数据类型。

假设unsigned_foounsigned 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的正确格式。 听起来这里还有其他问题,例如内存损坏或未初始化的变量。 或许可以向我们展示更大的图景

  • %lu表示无符号长
  • %llu表示unsigned long long

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

对于int %d

对于长int %ld

对于长期的int %lld

对于unsigned long long int %llu

int main()
{
    unsigned long long d;
    scanf("%llu",&d);
    printf("%llu",d);
    getch();
}

这会很有帮助。

格式为%lu

请在此处查看 printf中的各种其他数据类型及其用法

unsigned long的正确说明符是%lu

如果您没有得到预期的确切值,那么您的代码可能会出现一些问题。

请在此处复制您的代码。 那么也许有人可以更好地告诉你问题是什么。

我有同样的问题。 试试“%ul”,它对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM