首页 文章

如何在C中打印“unsigned long”?

提问于
浏览
287

我永远无法理解如何在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 .

8 回答

  • 421

    %luunsigned long 的正确格式 . 听起来这里还有其他问题,例如内存损坏或未初始化的变量 . 或许可以向我们展示更大的图景

  • -1

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

  • 20
    • %lu for unsigned long

    • %llu for unsigned long long

  • 8

    int %d

    对于 long int %ld

    long long int %lld

    对于 unsigned long long int %llu

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

    这会很有帮助 . . .

  • 8

    格式为 %lu .

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

  • 8

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

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

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

  • 16

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

相关问题