使用通过 `*inchstr()` 保存的数据来恢复屏幕内容
Use data saved with `*inchstr()` to restore screen contents
我需要一种方法将屏幕内容保存到缓冲区(而不是像 putwin()
那样的 FILE
),以便在内存中快速保存和恢复,所以我查看了Ncurses documentation and found the *inchstr()
函数系列,看起来正是我需要的。
所以我将数据保存在一个可以简化为的函数中:
chtype buffer[LINES][COLS+1];
for (int line = 0; line < LINES; line++)
mvinchnstr(line, 0, buffer[line], COLS);
问题是:如何恢复这个保存的数据以高效的方式显示到屏幕上?
我知道我可以使用 addch()
的 2 个嵌套循环,但是恢复每个字符的字符不会首先破坏使用 inchnstr()
的全部目的吗?是否有 inchnstr()
的 add*()
对应物,它采用 chtype
字符的空终止数组并打印它?
如果没有,*inchnstr()
家族的目的是什么?是否有更好的方法将屏幕内容保存到内存和从内存恢复?
我想你正在寻找 addchstr
and friends。
我需要一种方法将屏幕内容保存到缓冲区(而不是像 putwin()
那样的 FILE
),以便在内存中快速保存和恢复,所以我查看了Ncurses documentation and found the *inchstr()
函数系列,看起来正是我需要的。
所以我将数据保存在一个可以简化为的函数中:
chtype buffer[LINES][COLS+1];
for (int line = 0; line < LINES; line++)
mvinchnstr(line, 0, buffer[line], COLS);
问题是:如何恢复这个保存的数据以高效的方式显示到屏幕上?
我知道我可以使用 addch()
的 2 个嵌套循环,但是恢复每个字符的字符不会首先破坏使用 inchnstr()
的全部目的吗?是否有 inchnstr()
的 add*()
对应物,它采用 chtype
字符的空终止数组并打印它?
如果没有,*inchnstr()
家族的目的是什么?是否有更好的方法将屏幕内容保存到内存和从内存恢复?
我想你正在寻找 addchstr
and friends。