2012-01-18 68 views
5

好吧,所以我只是想知道如何控制檯應用程序如top(1)爲Linux覆蓋多行。我想知道如何爲C++或C做到這一點。我知道如何通過放置一個\ r來覆蓋1行,但我想知道如何爲多行執行操作,就像在頂部或者甚至是可能的那樣。控制檯覆蓋像頂部

+2

它是平臺相關的。你在哪個平臺上? – Jon 2012-01-18 02:53:27

+0

Linux可能是我要去做的事 – csteifel 2012-01-18 02:57:45

回答

3

它們使用終端轉義序列在屏幕上移動光標。有些甚至使用直接幀緩衝訪問,將屏幕視爲可以直接索引的字符數組。

curses(或ncurses)庫是一個很好的抽象層。

+0

只是一個說明,但詛咒在Windows上並不存在:[ncurses是否適用於Windows](http://stackoverflow.com/q/138153/) 16487) – 2012-01-18 02:57:13

+0

@ C.Ross:該問題詢問有關替換支持curses API的終端仿真器。 'curses'肯定可用於控制檯模式應用程序。 – 2012-01-18 03:00:45

+0

pdcurses實際上非常實用,我沒有將使用基本ASCII字符的ncurses應用程序移植到Windows上的pdcurses時遇到任何問題。如果你使用ncursesw,兼容UTF-8的ncurses化身,你可能會遇到更多的麻煩。 – 2012-01-18 03:28:47

2

這可能不會直接解決這個問題,但這種事情依賴於終端,通常使用curses實現(ncurses是最廣泛使用的)。