C:首先使用printf和scanf函数打印一个带有0(08)的数字

时间:2015-12-25 20:26:55

标签: c printf

如何首先打印一个零的整数 例如,从stdin扫描时间信息:

int h, m;
scanf("%d:%d", &h, &m);
printf("%d:%d", h, m);

我在08:19扫描了8:19,如何改变它的形式?

3 个答案:

答案 0 :(得分:3)

对于最小2位数且前导0尝试:

printf("%02d:%02d",h,m);

答案 1 :(得分:1)

%0d就是你的目标

printf("%0d:%0d",h,m);

答案 2 :(得分:1)

tpr的答案是执行此操作的经典方法,但您可以考虑:

printf("%.2d:%.2d", h, m);

它会为08:09h=8打印相同的m=9输出。

printf整数格式的精度字段指定要生成的最小位数。如果要填充除前导零之外的数字,可以同时使用宽度和精度:

printf("|%3.2d:%-3.2d|", h, m);

将生成| 08:09 |

另一个有趣的特性是不能为零值产生输出:

printf("|%3.0d|", 0);

会产生| |,有时非常方便。