2013-10-09 3 views
0

Так что я пытаюсь распечатать шестнадцатеричные значения в C++ с использованием Printf, и хорошо, я хочу, чтобы выход из следующей строки будет вал: 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 до be – GelatinFox

+0

Просто скорректируйте его, вам нужно поместить флаг 0, чтобы он печатал 0 вместо пробелов. – fvdalcin

Смежные вопросы