我永远无法理解如何在C中打印无符号长数据类型。

假设unsigned_foo是unsigned long,那么我尝试:

陆printf (" % \ n”,unsigned_foo) 杜printf (" % \ n”,unsigned_foo) printf (" % ud \ n”,unsigned_foo) printf(" %会\ n”,unsigned_foo) printf (" % ld \ n”,unsigned_foo) printf (" % dl \ n”,unsigned_foo)

它们都输出一些-123123123数字而不是我的无符号长。


当前回答

%lu是unsigned long的正确格式。听起来好像还有其他问题,比如内存损坏或未初始化的变量。也许给我们展示一个更大的图景?

其他回答

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

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

请把代码复制到这里。也许有人能更好地告诉你问题出在哪里。

格式为%lu。

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

对于int %d

对于长int %ld

对于long long int %lld

对于unsigned long long int %llu

%lu是unsigned long的正确格式。听起来好像还有其他问题,比如内存损坏或未初始化的变量。也许给我们展示一个更大的图景?

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

这将会很有帮助……