我目前正在使用以下代码在屏幕上打印已用时间(以秒为单位):
for(int i = 1; i < 20; i++)
{
char cheese[0];
if(i < 10)
{
cheese[0] = '0';
}
else cheese[0] = '\0';
system("CLS");
printf("%c%i", cheese[0], i);
Sleep(1000);
}
我想把时间输出为:
..
08
09
10
..
我怎么能这样做?
答案 0 :(得分:3)
使用类似:
printf("%02i", i);
这将始终产生至少两位数,必要时带前导零。
如果你想用空格填充而不是零,你应该使用:
printf("%2i", i);
会产生:
1
2
10
不推荐:
如果你想在不使用格式字符串中的大小说明符的情况下这样做,你可以这样做:
char pad[2];
pad[1] = 0; // make sure the pad string is terminated properly
if (i >= 10) {
pad[0] = 0; // plain zero - end of string marker
} else {
pad[0] = '0'; // character zero
}
printf("%s%i", pad, i);
如果pad
至少有两位数, i
将为零长度字符串,因此printf不会输出字符。
答案 1 :(得分:3)
for(int i = 1; i < 20; i++)
{
system("CLS");
printf("%02d", i);
Sleep(1000);
}
......可能更接近你想要的东西。
答案 2 :(得分:0)
如果你想要两位数,为什么不简单地喜欢这个?
printf(“%02d”,i)
为值添加零字符&gt; 10声音吓人顺便说一句。 (也因为%c会打印-something-,实际上是零,不像%s它不会在遇到的第一个\ 0上停止。)
答案 3 :(得分:0)
这将提供您想要的输出
for(int i = 1; i < 20; i++)
{
printf("%d2", i);
Sleep(1000);
}
但是如果你想要打印出已经过去的时间,你就不应该这样做。