2013-05-12 55 views
0

有沒有辦法在控制檯窗口上刪除或重寫一個符號?像System(「cls」),但是用於單個符號。C++清理控制檯窗口

感謝

+0

打印很多'(char)8'(backspace)可能會這樣做。 – 2013-05-12 10:18:48

+0

@LuchianGrigore或''\ b''。 :) – 2013-05-12 10:29:20

+0

'\ b'不會擦除任何東西,「\ b \ b」會。 – 2013-05-12 10:36:38

回答

3

首先,你通常與標準輸出流正與C++,不與控制檯本身。而且你無法瀏覽它。

另一方面,您可以使用特定的平臺相關控制檯庫(如ncursesWindows console functions)來處理控制檯。

但是,如果你實際上是打印到控制檯,您可以用一些符號來控制的最後一行:

  • 您可以發送'\b'Backspace鍵)移動一個字符留在當前行。
  • 您可以發送'\r'移動到當前行的開頭。

也不要忘記,stdout通常行緩衝,你可以用雙手有沖洗

int main() 
{ 
    std::cout << "Hi\r" << std::flush; 
    Sleep(1000); //or whatever to delay 
    std::cout << "hellq" << std::flush; // flushing by hands 
    Sleep(1000); 
    std::cout << "\bo"; 
}