Как печатать unsigned long int с printf в C?

Возможный дубликат:
Как напечатать f "unsigned long" в C?

У меня есть мой номер вроде так...

int unsigned long number = 600851475143;

Я пытаюсь напечатать его с помощью printf(). Каждый раз, когда я пытаюсь, я получаю предупреждение от компилятора.

Я пробовал %uld, %ld, и Google, похоже, не нашел ответа.

Я изучаю C, но раньше мне не приходилось использовать long int, поэтому я не уверен, что я должен использовать.

Что такое спецификатор, который я преследую?

Ответы

Ответ 1

Я рекомендую использовать стандартный порядок (т.е. unsigned long int). %lu - тег формата, который вы ищете.

printf("%lu", 5ul);

Ответ 2

int unsigned long number = 600851475143LU;
printf( "%lu", number );

печатает 600851475143