Используйте что-то вроде:
printf("%02i", i);
Это всегда будет содержать по крайней мере две цифры с ведущими нулями, если необходимо.
Если вы хотите заполнить пробелом вместо нуля, выследует использовать:
printf("%2i", i);
Будет выдано:
1
2
10
Не рекомендуется:
Если вы хотите сделать это без использования спецификатора размерав строке формата вы можете сделать трюк, подобный следующему:
char pad[2];
pad[1] = 0; // make sure the pad string is terminated properly
if (i >= 10) {
pad[0] = 0; // plain zero - end of string marker
} else {
pad[0] = '0'; // character zero
}
printf("%s%i", pad, i);
pad
будет строкой нулевой длины, если i
имеет хотя бы две цифры, поэтому printf не будет выводить символ.