Как сказал Лучиан, такое поведение не поддерживается в printf
, в отличие от гораздо более распространенного обратного (левого) заполнения.
Однако вы могли бы достаточно легко сгенерировать запрошенный результат примерно так:
char *number_to_six_digit_string(char *resulting_array, int number)
{
int current_length = sprintf(resulting_array, "%d", number);
while (6 > current_length) {
resulting_array[current_length++] = '0';
}
resulting_array[current_length] = '\0';
return resulting_array;
}
и затем вы можете напечатать результат:
char my_number[7];
printf("my number is %s, other stuff\n", number_to_six_digit_string(my_number, 13));