用于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
...
答案 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)
请使用格式:%02d
。 0
表示使用零填充字段,2
表示字段宽度为两个字符,因此对于任何需要显示少于2个字符的数字,它将填充为0。
答案 2 :(得分:1)
"%.2d"
是应使用的。
规则基本上是
"%<minimum-characters-overall>.<minimum-digits>d"
。
例如:
"%6.3d"
将总共打印6个字符,最少3个数字。