如何输出到控制台,并覆盖文本而不清除屏幕并重写所有内容?

问题描述 投票:0回答:1

就像使用aircrack-ng或任何具有不断更新的数据表的程序一样。

=\

c++ linux macos
1个回答
6
投票

它在某种程度上取决于系统,最重要的是,你想要覆盖多少。对于很多简单的程序,输出'\r'就可以了:它会将光标返回到行的开头(几乎在所有控制台上),你可以覆盖该行。 (我过去曾经用过这个不断更新的进度报告:例如n records processed。在你做好准备之前,一定要输出'\n'

对于任何更复杂的,通常的解决方案是curses库。它应该存在于大多数Unix上(有时名为ncurses),并且还有一个ncurses端口到Windows。 (库的通用名称及其在传统Unix下的名称是curses; ncurses是库的GPL实现。)

© www.soinside.com 2019 - 2024. All rights reserved.