[英]How to printf "unsigned long" in C?
我永远无法理解如何在 C 中打印unsigned long
数据类型。
假设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
表示unsigned long long 在您尝试的所有组合中, %ld
和%lu
是唯一有效的printf格式说明符。 %lu
(长无符号十进制), %lx
或%lX
(带有小写或大写字母的长十六进制)和%lo
(长八进制)是unsigned long类型变量的唯一有效格式说明符(当然,您可以添加字段%
和l
之间的宽度,精度等修饰符。
对于int %d
对于长int %ld
对于长期的int %lld
对于unsigned long long int %llu
int main()
{
unsigned long long d;
scanf("%llu",&d);
printf("%llu",d);
getch();
}
这会很有帮助。 。 。
格式为%lu
。
请在此处查看 printf中的各种其他数据类型及其用法
unsigned long的正确说明符是%lu
。
如果您没有得到预期的确切值,那么您的代码可能会出现一些问题。
请在此处复制您的代码。 那么也许有人可以更好地告诉你问题是什么。
我有同样的问题。 试试“%ul”,它对我有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.