在同一行重写信息

时间:2012-01-27 02:22:58

标签: c command-line cmd countdown

我是C编程的新手,我希望在一行上进行倒计时,例如,像这样:

Time left: n

其中n将是该行更新的唯一部分。

我在谈论命令行编程。我知道如何倒计时,我只需要帮助将它保持在一行并动态更新该行。

1 个答案:

答案 0 :(得分:6)

您可以使用\r将光标返回到行的开头并覆盖该行。所以:

for (int i = 10; i > 0; i--) {
    printf("\rCountdown: %d ", i);
    fflush(stdout);
    sleep(1);
}
printf(" done.\n");

fflush(stdout);是必需的,因为默认情况下,stdout仅在其输出缓冲区已满或者输出\n时自行刷新。