以下是我的代码: -
#include <stdio.h>
#include <unistd.h>
int main()
{
int i;
printf("Continue in...");
for (i = 10; i > 0 ; --i)
{
printf("%d",i);
sleep(1);
printf("\b");
}
}
我正在尝试在C中制作一个倒数计时器,这样只有i的值在STDOUT上改变,而且&#34; 继续在...... &#34;留在壳上(即在屏幕的同一位置)。
但是上面的代码在10秒内没有产生任何结果,而只是打印字符串&#34;继续...&#34;在第10秒之后。
我读了this回答,其中说明\ b的行为取决于终端。 我的问题是我应该在代码中编辑什么来使其输出独立于输出设备。
答案 0 :(得分:-1)
您必须在\n
之后的printf("%d",i);
中添加%d
。因为缓冲区没有用新行刷新或直到它已满。