2011-05-16 26 views
0

就像使用aircrack-ng或任何具有不斷更新的數據表的程序一樣。C++:如何輸出到控制檯,並覆蓋文本而不清除屏幕並重寫所有內容?

= \

+2

在標準的C++中,沒有辦法做到這一點。 所以問題就變成了什麼平臺 上。 每個平臺都有幫助你做到這一點的庫。 – 2011-05-16 14:55:30

+0

Linux和Mac OS X – NullVoxPopuli 2011-05-16 15:00:39

+2

我不確定這是否是您想要的,但打印字符'\ r'將刪除光標所在的行。對於進度指示器或類似的東西很有用。 – Constantinius 2011-05-16 15:04:12

回答

6

這取決於系統上有所,首先,你要多少覆蓋。對於很多簡單的程序來說,輸出'\r'將會訣竅:它會將光標返回到行的開頭(幾乎所有的控制檯上),並且可以覆蓋該行。 (我已經在過去使用這種連續更新的進度報告:。n records processed,例如只要確保不輸出'\n',直到你準備

對於任何更復雜,通常的解決方法是curses庫它應該出現在大多數Unix上(有時候名字爲ncurses),並且在Windows上也有一個端口ncurses(這個庫的名字和它在傳統Unix下的名字是curses; ncurses是GPL實現)

相關問題