如何在C中将数字显示为两位数?

时间:2013-01-31 03:14:52

标签: c digit

用于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

...

3 个答案:

答案 0 :(得分:49)

如果要将前导零填充到两个空格,则需要使用%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是某种方式最小长度。

答案 1 :(得分:33)

请使用格式:%02d0表示使用零填充字段,2表示字段宽度为两个字符,因此对于任何需要显示少于2个字符的数字,它将填充为0。

答案 2 :(得分:1)

"%.2d"是应使用的。 规则基本上是

"%<minimum-characters-overall>.<minimum-digits>d"

例如:

"%6.3d"将总共打印6个字符,最少3个数字。