Вы можете использовать printf()
просто распечатать отформатированный номер на стандартный вывод:
int c = 5;
fprintf(stdout, "c [%02d]\n", c);
Если вы не можете использовать printf()
, другой вариант, чтобы сохранить проложенное значение в char *
или строке. Вместо этого вы можете использовать sprintf()
для записи отформатированной строки в буфер char *
.
Например:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (int argc, char *argv[]) {
{
char* c_str = NULL;
int c_int = 5;
int c_str_length = 3; /* two bytes for "0", "5", and one byte for the nul terminator */
c_str = malloc(c_str_length);
if (!c_str) {
fprintf(stderr, "Error: Could not allocate space for string!\n");
return EXIT_FAILURE;
}
int n = sprintf(c_str, "%02d", c_int);
if (n != c_str_length) {
fprintf(stderr, "Error: Something went wrong in writing the formatted string!\n");
free(c_str);
return EXIT_FAILURE;
}
fprintf(stdout, "c_str: [%s]\n", c_str);
free(c_str);
return EXIT_SUCCESS;
}
Если вы идете по этому пути, вы можете увидеть, как вы могли бы сделать некоторые проверки ошибок по пути. Вам нужно будет подумать о длине строки (подсказка: log10()
) или использовать статический массив char []
вместо char *
достаточно длинной длины.
Что вы используете для вывода, который не является 'printf'? У вас есть 'sprintf'? –
Это ваша среда - почему вы спрашиваете нас? –
Если вы говорите, что не думаете, что 'printf()' может форматировать десятичные целые числа с ведущими нулями, то вы ошибаетесь. Просто используйте флаг '0' в соответствующем спецификаторе преобразования. –