我将seconds
的值设为0
或60
这样的简单数字,我希望以00:00:00
的格式打印它。例如,60秒将显示为00:01:00
。
所以我有一个值:
unsigned long long sec;
unsigned long long min;
unsigned long long hr;
unsigned long long t;
我这样做:
//pass in value of seconds
hr = sec/3600;
t = sec%3600;
min= t/60;
sec = t%60;
char *colon = ":";
printf("%llu%s%llu%s%llu\t", hr,colon,min,colon,sec);
这将部分打印我想要的内容,例如前一个示例中的0:1:0
。但是,如果它只有1个字符长度,我需要额外的0 ......我能想到这样做的唯一方法是转换为字符串,如果长度为1,则在开头处结束零,但我觉得有更好的方式......我只是不知道。任何帮助将不胜感激,谢谢!
答案 0 :(得分:3)
您可以在每个%u
说明符之前添加数字字段宽度,以使其具有特定大小。在这种情况下,那将是2
。
然后在此之前添加0
标志,以指示该字段应使用零填充。
printf("%02llu%s%02llu%s%02llu\t", hours,colon,minutes,colon,seconds);