从屏幕上读取更改

时间:2013-06-28 03:03:00

标签: c++ ncurses

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

所以,让我们说窗口中的文档如下所示:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

然后用户修改文档,如下所示:

 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxx  QAQAQAQAQAQAQAQAQAQAQAQAQAQAQAQAQA  xxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

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

我试过了scanw()但是没有用。提前感谢您提供给我的任何帮助或提示。

1 个答案:

答案 0 :(得分:1)

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

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

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

chtype包含粗体等效果的字符和标记