终端文本编辑器,如 emacs
, vim
, joe
甚至 nano
能够在命令行中显示任意 UI 元素,而无需每次都完全重写整个 UI,而是覆盖当前的 UI。
对于常规输出流,您只能使用返回字符 '\r'
跳到当前输出行的开头并覆盖它,但据我发现你不能跳多行,cout << "\r\r\r\r\r\r";
与 cout << '\r'
效果相同, 因此换行符后面的所有内容显然都是一成不变的。
其他应用程序做类似的事情,例如 $dpkg-reconfigure ca-certificates
在 Ubuntu 或 aptitude
上图形包管理器。他们还为 UI 元素绘制轮廓,这些元素可能只是特殊字符。但是,他们仍然必须覆盖多行控制台输出。
他们是怎么做到的?该行为是否可移植到 Windows 平台?
最佳答案
关于c++ - 终端文本编辑器的用户界面是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26204024/