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)
这会很有帮助...