Как распечатать "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
(long octal) являются единственными допустимыми спецификаторами формата для переменной типа unsigned long (конечно, вы можете добавить модификаторы ширины поля, точности и т. д. Между%
иl
).
int main() { unsigned long long d; scanf("%llu",&d); printf("%llu",d); getch(); }
Это будет полезно . . .
формат
%lu
.пожалуйста, проверьте о различных других типах данных и их использовании в printf здесь