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

认为 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. 。听起来这里还有其他问题,例如内存损坏或未初始化的变量。也许向我们展示更大的图景?

其他提示

  • %lu 为了 无符号长
  • %llu 为了 无符号长长

为了 整数 %d

为了 长整型 %ld

为了 长整型 %lld

为了 无符号长长整型 %llu

在您尝试过的所有组合中, %ld%lu 是唯一有效的 printf 格式说明符。 %lu (长无符号十进制), %lx 或者 %lX (带有小写或大写字母的长十六进制),以及 %lo (长八进制)是 unsigned long 类型变量的唯一有效格式说明符(当然,您可以在 %l).

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

这会有帮助的。。。

格式为 %lu.

请检查 printf 中的各种其他数据类型及其用法 这里

unsigned long 的正确说明符是 %lu.

如果您没有获得预期的确切值,那么您的代码中可能存在一些问题。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top