3
我是新来的C语言编程,我希望有一个倒计时发生在同一行,例如,像这样:重写信息
Time left: n
其中n
将是那唯一的部分已更新的行。
我在说命令行编程。我知道如何做倒计数,我只需要帮助将它保持在一行,并动态更新该行。
我是新来的C语言编程,我希望有一个倒计时发生在同一行,例如,像这样:重写信息
Time left: n
其中n
将是那唯一的部分已更新的行。
我在说命令行编程。我知道如何做倒计数,我只需要帮助将它保持在一行,并动态更新该行。
您可以使用\r
将光标返回到行的开头并覆盖该行。所以:
for (int i = 10; i > 0; i--) {
printf("\rCountdown: %d ", i);
fflush(stdout);
sleep(1);
}
printf(" done.\n");
的fflush(stdout);
是必要的,因为在默认情况下,stdout
只有当它的输出缓冲区已满,或\n
输出刷新本身。
在纯ANSI C中不可能 - 你在使用什么操作系统 - 因为你需要一些允许控制输出位置的库/扩展(例如你需要ncurses的unix/linux) – 2012-01-27 02:25:02
@AdrianCornish:它更简单比不得不使用诅咒。 – 2012-01-27 02:28:51
@GregHewgill有趣的解决方案:-)可能适用于大多数实现。 – 2012-01-27 02:40:21