使用通过 `*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