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