2013-10-09 43 views
0

所以我想在C打印出的十六进制值++用printf,和好,我想下面的字符串输出为VAL:0x0366包括0领先为什么这个值会被切断?

下面的代码

int poo = 0x00000366; 
printf("val:0x%x \n",poo); 

下面是输出:

0x366 

回答

1

你试过printf("val:0x%04x \n",poo);

printf reference

格式说明如下这个原型:

%[flags][width][.precision][length]specifier 

你的情况:

%[0][4][default precision][default lenght]x 
+0

是,它增加了一个空白的地方,我希望为0〜是 – GelatinFox

+0

只是纠正它,你需要把0标志,所以它打印0而不是空格。 – fvdalcin