Подтвердить что ты не робот

Как получить номера для отображения в виде двух цифр в C?

Для программирования 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

??

4b9b3361

Ответ 1

Используйте формат: %02d. 0 означает прокрутку поля с использованием нулей, а 2 означает, что поле имеет ширину в два символа, поэтому для любых чисел, которые отображают менее двух символов, оно будет дополнено 0.

Ответ 2

Вам нужно использовать %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 - это как минимум минимальная и максимальная длина.