我正在用C为我的系统类项目开发一个CLI程序,它需要在保持命令提示符的同时显示输入的文本。不管输入的内容如何,​​输入文本都将被浏览。在其他应用程序中,我看到了在提示本身上方(或下方)打印的传入文本。有什么办法可以在ANSI转义中实现这一点? ncurses似乎过于矫kill过正。

最佳答案

您可以打印\r删除提示:它将光标返回到当前行的开头。然后,您可以打印输出,后跟一些空格以清除所有剩余的输入字符,换行符,然后重新打印提示。

使用ANSI序列或特定于终端的库,您可以执行更多操作,但是我认为,仅使用ASCII即可可靠地完成所有操作。当然,除了打印242条空白行以重绘整个屏幕外。

编辑:对不起,我没有正确回答ANSI部分。使用光标移动控制代码和在现有字符上的打印空间,您几乎可以执行任何操作,并且有一些方便的操作可以帮助您,例如“删除行”。但是请记住,Windows在XP之后使用ANSI时不能很好地运行,其他系统也不保证。

07-24 09:44
查看更多