printf格式化

时间:2009-02-10 01:59:16

标签: c string printf

我想使用printf0x###格式显示十六进制数字,但如果数字为0,我想省略0x部分。

5 个答案:

答案 0 :(得分:16)

printf("%#x", number);

请注意,这确实完全您想要的内容。如果number的值为0,则打印0,否则以十六进制打印。例如:

int x = 0;
int y = 548548;

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

结果:

0 0x85ec4

答案 1 :(得分:4)

 printf ((x == 0) ? "%03x" : "0x%03x", x);

答案 2 :(得分:2)

if (num == 0)
{
     printf("0");
}
else
{
     printf("%X", num);
}

答案 3 :(得分:1)

为什么要努力?

if number = 0
  printf without formatting
else
  printf with formatting

答案 4 :(得分:0)

难道你不能只使用if语句来检查数字是否为0然后弄清楚你是应该将它打印为0x ###还是仅为000(或者如果你正在寻找的那样是0)