微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NCurses初始化而不清除屏幕

我正在编写一个类似于 shell的程序.一旦启动,有一个提示,你输入一些特定于应用程序的命令.

到目前为止这个工作很好.但是,我想添加Bash中的命令历史记录的支持,所以用户可以点击向上或向下箭头,并查看以前输入的命令.

我已经包括了ncurses库,我已经用getch()做了一个简单的hello world测试,以确保正确地报告上下箭头.

困扰我的是,似乎是一个要求,我调用initscr()将清除屏幕,以便我使用getch().

好的问题是:

有没有人知道使用ncurses getch()函数方法,而不是首先调用initscr()?如果没有,我可以让它不清楚屏幕吗?基本上,我希望getch()与getchar()相同,如果这样做是有道理的.

提前致谢!

编辑:我认为最好的例子是Python是如何以交互模式运行的.

解决方法

诅咒希望完全控制屏幕,并优化对屏幕的写入,特别是在慢速串行线路上.要做到这一点,它需要知道屏幕上是什么,并且与大多数终端完成的唯一合理的方法是从一个空白的屏幕开始,并跟踪你写给终端的内容.

因此,我怀疑(n)诅咒是你的shell的错误工具.您可能需要在抽象层上下一步,并使用终端(标准输入)中的terminfo和非阻塞读取.

(这不是很有帮助,对不起)

原文地址:https://www.jb51.cc/c/113602.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐