Как распечатать "unsigned long" на C?
Я не могу понять как печатать unsigned long
тип данных в с.
предположим unsigned_foo
это unsigned long
, тогда я попробую:
printf("%lun", unsigned_foo)
printf("%dun", unsigned_foo)
printf("%udn", unsigned_foo)
printf("%lln", unsigned_foo)
printf("%ldn", unsigned_foo)
printf("%dln", unsigned_foo)
и все они печатают что-то вроде -123123123
вместо unsigned long
что у меня есть.
7 ответов
%lu
правильный формат unsigned long
. Похоже, здесь есть другие проблемы, такие как повреждение памяти или неинициализированная переменная. Может, покажешь нам картину побольше?
из всех комбинаций, которые вы пробовали, %ld
и %lu
единственные действительные формата функции printf спецификатор на всех. %lu
(длинный десятичный знак без знака),%lx
или %lX
(длинный шестнадцатеричный с строчными или прописными буквами), и %lo
(длинный восьмеричный) являются единственными допустимыми спецификаторами формата для переменной типа unsigned long (конечно, вы можете добавить ширину поля, точность и т. д. модификаторы между %
и l
).
int main()
{
unsigned long long d;
scanf("%llu",&d);
printf("%llu",d);
getch();
}
Это будет полезно . . .
формат %lu
.
пожалуйста, проверьте о различных других типах данных и их использовании в printf здесь
правильным спецификатором для unsigned long является %lu
.
Если вы не получаете точное значение, которое ожидаете, в вашем коде могут возникнуть некоторые проблемы.
скопируйте свой код здесь. Тогда, может быть, кто-нибудь лучше объяснит вам, в чем проблема.