【发布时间】:2012-01-18 02:51:51
【问题描述】:
好吧,我只是想知道像top(1) 这样的控制台应用程序是如何覆盖多行的。我想知道如何为 C++ 或 C 执行此操作。我知道如何通过仅放置一个 \r 来覆盖 1 行,但我想知道如何为多行执行此操作,再次像顶部一样,或者如果它甚至可能。
【问题讨论】:
-
它依赖于平台。你在哪个平台上?
-
Linux 可能是我想做的地方
好吧,我只是想知道像top(1) 这样的控制台应用程序是如何覆盖多行的。我想知道如何为 C++ 或 C 执行此操作。我知道如何通过仅放置一个 \r 来覆盖 1 行,但我想知道如何为多行执行此操作,再次像顶部一样,或者如果它甚至可能。
【问题讨论】:
他们使用终端转义序列在屏幕上移动光标。一些甚至使用直接帧缓冲访问,将屏幕视为可以直接索引的字符数组。
curses(或ncurses)库是一个很好的抽象层。
【讨论】:
curses 当然可用于控制台模式应用程序。
这可能不能直接解决问题,但这类事情取决于终端,通常通过 curses 实现来完成(ncurses 是最广泛使用的)。
【讨论】: