我试图使用以下代码制作一个基本的倒数计时器
#include <stdio.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
printf("Enter time in minutes:");
int x = 0;
scanf("%d", &x);
x = x*60;
while(x!=0) {
printf("Remaining time is %d\r", x);
x--;
sleep(1);
}
return 0;
}
但是,当我运行x = 1的代码时,我没有立即输出。无论如何要解决这个问题吗?
答案 0 :(得分:3)
标准输出默认为行缓冲。如果是
printf("Remaining time is %d\n", x);
请注意此处的\n
,每次看到\n
时都会输出。
但是,在您的情况下,您有意使用回车\r
。另一种方法是手动清除标准,如下所示:
printf("Remaining time is %d\r", x);
fflush(stdout);