Ответ 1
Используйте формат: %02d
. 0
означает прокрутку поля с использованием нулей, а 2
означает, что поле имеет ширину в два символа, поэтому для любых чисел, которые отображают менее двух символов, оно будет дополнено 0.
Для программирования C. Как получить номера, которые будут отображаться как 00, 01, 02, 03, вместо 0, 1, 2, 3. Мне просто нужно 0 до номера до 10.
Я знаю, когда вы делаете десятичные знаки, вы можете сделать "%.2f" и т.д., но что в обратном для целых чисел?
вот что я использую... **
printf("Please enter the hours: ");
scanf ("%d",&hour);
printf("Please enter the minutes: ");
scanf ("%d",&minute);
printf("Please enter the seconds: ");
scanf ("%d",&second);
printf("%d : %d : %d\n", hour, minute, second);
}
Мне нужно, чтобы цифры отображались как 00: 00: 00
??
Используйте формат: %02d
. 0
означает прокрутку поля с использованием нулей, а 2
означает, что поле имеет ширину в два символа, поэтому для любых чисел, которые отображают менее двух символов, оно будет дополнено 0.
Вам нужно использовать %02d
, если вы хотите, чтобы начальные нули дополнялись двумя пробелами:
printf ("%02d : %02d : %02d\n", hour, minute, second);
См., например, следующую полную программу:
#include <stdio.h>
int main (void) {
int hh = 3, mm = 1, ss = 4, dd = 159;
printf ("Time is %02d:%02d:%02d.%06d\n", hh, mm, ss, dd);
return 0;
}
который выводит:
Time is 03:01:04.000159
Имейте в виду, что %02d
означает минимальную ширину двух символов, чтобы она выводила 123 как 123
. Это не должно быть проблемой, если ваши значения действительны в часах, минутах и секундах, но стоит иметь в виду, что многие неопытные кодеры, похоже, ошибаются в том, что 2 - это как минимум минимальная и максимальная длина.