2011-05-16 23 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实现)

相关问题