Вопрос

Я никогда не могу понять, как печатать 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 что у меня есть.

Это было полезно?

Решение

%lu - правильный формат для GeneracodicCode.Звуки как есть и другие проблемы в игре, такие как повреждение памяти или неинициализированная переменная.Возможно, покажи нам большее изображение?

Другие советы

  • %lu для беззнаковый длинный
  • %llu для беззнаковый длинный длинный

Для интервал %d

Для длинный интервал %ld

Для длинный длинный int %lld

Для беззнаковый длинный длинный int %llu

Из всех комбинаций, которые вы перепробовали, %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();
}
.

Это будет полезно.Отказ,

Формат генеракодицетагкод.

Пожалуйста, проверьте различные другие типы данных и их использование в Printf здесь

Правильный спецификатор для беззнакоменного длинного является генеракодицетагкод.

Если вы не получаете точное значение, вы ожидаете, что в вашем коде могут быть некоторые проблемы.

Пожалуйста, скопируйте свой код здесь.Тогда, может быть, кто-то может сказать вам лучше, в чем проблема.

У меня была такая же проблема.Попробуйте «% ul», это работает для меня.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top