【问题标题】:Reading changes from screen从屏幕读取更改
【发布时间】:2013-06-28 03:03:00
【问题描述】:

我正在使用 Ncurses 在 Linux 中编写一种“某种”编辑器。我创建了一个窗口,初始化了一些 Ncurses 变量,在内存中加载了一个文件(使用另一个类),然后在我创建的窗口上显示了该文件。我的问题是我需要阅读屏幕上的内容(用户输入和之前屏幕上的内容的组合)

假设我在窗口中的文档如下所示:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

然后用户像这样修改文档:

 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxx  QAQAQAQAQAQAQAQAQAQAQAQAQAQAQAQAQA  xxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

所以用户输入了 Q 和 A,但我有兴趣阅读整行,我该怎么做?

我尝试了scanw(),但没有成功。提前感谢您能给我的任何帮助或提示。

【问题讨论】:

标签: c++ ncurses


【解决方案1】:

Curses 保留了窗口的内部地图,您可以通过以下方式查询它:

 chtype inch(void);
 chtype winch(WINDOW *win);
 chtype mvinch(int y, int x);
 chtype mvwinch(WINDOW *win, int y, int x);

您必须阅读窗口中的每个位置。

chtype 包含用于粗体等效果的字符和标志

【讨论】:

    猜你喜欢
    • 2013-06-11
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 2018-12-13
    相关资源
    最近更新 更多