printf格式化

sam*_*moz 0 c string printf

我想用来printf在表单中显示十六进制数字0x###,但如果数字为0,我想省略该0x部分.

Sea*_*ght 16

printf("%#x", number);
Run Code Online (Sandbox Code Playgroud)

请注意,这完全符合您的要求.如果number的值为0,则打印0,否则以十六进制打印.例:

int x = 0;
int y = 548548;

printf("%#x %#x\n", x, y);
Run Code Online (Sandbox Code Playgroud)

结果是:

0 0x85ec4
Run Code Online (Sandbox Code Playgroud)