在同一行重写信息

use*_*635 3 c command-line cmd countdown

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

Time left: n
Run Code Online (Sandbox Code Playgroud)

哪个n是更新的那一行的唯一部分.

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

Gre*_*ill 6

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

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

fflush(stdout);是必要的,因为默认情况下,stdout只有在输出缓冲区变满或输出时才刷新自身\n.