bod*_*ydo 319 c printf unsigned format-specifiers long-integer
我永远无法理解如何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
我的数字.
Tha*_*tos 474
%lu
是正确的格式unsigned long
.听起来这里还有其他问题,例如内存损坏或未初始化的变量.或许可以向我们展示更大的图景
R..*_*R.. 23
在您尝试的所有组合中,%ld
并且%lu
是唯一有效的printf格式说明符.%lu
(长无符号十进制),%lx
或%lX
(带有小写或大写字母的长十六进制)和%lo
(长八进制)是unsigned long类型变量的唯一有效格式说明符(当然,您可以在之间添加字段宽度,精度等修饰符)%
和l
).
int main()
{
unsigned long long d;
scanf("%llu",&d);
printf("%llu",d);
getch();
}
Run Code Online (Sandbox Code Playgroud)
这会很有帮助...