Как распечатать "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 здесь