2017-01-02 51 views

回答

2

如果您使用的是Windows

system("cls");

如果你是在Linux/Unix

system("clear");

1

你可以嘗試ANSI轉義序列:

printf("\033[2J\033[H"); 

這將清除終端窗口和地點t如果終端支持ANSI轉義序列,則光標位於左上角。在大多數Unix X11終端,OS/X終端和cygwin終端上都可以正常工作。

如果您的Windows終端無法識別ANSI序列,看看這個頁面來啓用它:https://msdn.microsoft.com/en-us/library/windows/desktop/mt638032(v=vs.85).aspx

+0

它適用於我,但你能解釋一點關於該行。我在谷歌搜索,但仍然困惑。 編輯:我發現[2J是用來擦除顯示,但033和[H –

+1

'\ 033'是如何轉義字符,'ESC [H'設置光標到原始位置,左上角屏幕。 – chqrlie

+1

這裏有一個很好的轉義序列解釋 https://en.wikipedia.org/wiki/ANSI_escape_code 「所有序列都以字符ESC(ASCII十進制27 /十六進制0x1B /八進制033)開頭」。 「非csi」序列之一就是執行重置的簡單「c」。 所以最基本的清屏是:printf「\ 033c」 – DavidW

0

試試這個時候你不會使用清屏:

printf("\e[1;1H\e[2J"); 

工作原理:

  • \e[1;1H將屏幕設置爲第1行和第1列。
  • 2J用「」(空格)覆蓋當前在 屏幕上的所有字符。