форматирование printf - PullRequest
       15

форматирование printf

0 голосов
/ 10 февраля 2009

Я хочу использовать printf для отображения шестнадцатеричных чисел в форме 0x###, но если число равно 0, я хочу пропустить 0x часть.

Ответы [ 5 ]

16 голосов
/ 10 февраля 2009
printf("%#x", number);

Обратите внимание, что это в точности , что вы хотите. Если значение числа равно 0, оно печатает 0, иначе оно печатает в шестнадцатеричном формате. Пример:

int x = 0;
int y = 548548;

printf("%#x %#x\n", x, y);

Результат:

0 0x85ec4
4 голосов
/ 10 февраля 2009
 printf ((x == 0) ? "%03x" : "0x%03x", x);
2 голосов
/ 10 февраля 2009
if (num == 0)
{
     printf("0");
}
else
{
     printf("%X", num);
}
1 голос
/ 10 февраля 2009

Зачем это сложно?

if number = 0
  printf without formatting
else
  printf with formatting
0 голосов
/ 10 февраля 2009

Не могли бы вы просто использовать оператор if, чтобы проверить, является ли число 0, а затем выяснить, следует ли печатать его как 0x ### или просто 000 (или 0, если это было то, что вы искали) *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...