C 将windows内容保留在课程中

C 将windows内容保留在课程中,c,ncurses,C,Ncurses,我希望有多个带有ncurses的完整终端窗口,并且能够切换窗口 伪代码: write "Hello" in window 1 switch to window 2 and write "Hi" go back to window 1 and write "how are you?" 问题是,在窗口2中写入“Hi”时,首字母“Hello”被清除。 如何在窗口1中的“你好吗?”结尾处避免出现这种情况 此问题的常见原因是在窗口上运行wgetch会在同一窗口上执行相应的操作。作为一种特殊但常见的情况,

我希望有多个带有ncurses的完整终端窗口,并且能够切换窗口

伪代码:

write "Hello" in window 1
switch to window 2 and write "Hi"
go back to window 1 and write "how are you?"
问题是,在窗口2中写入“Hi”时,首字母“Hello”被清除。
如何在窗口1中的“你好吗?”结尾处避免出现这种情况

此问题的常见原因是在窗口上运行
wgetch
会在同一窗口上执行相应的操作。作为一种特殊但常见的情况,刷新标准屏幕
stdscr

如果窗口不是pad,并且自上次调用wrefresh以来已被移动或修改,wrefresh将被删除 在读取另一个字符之前调用

当然,冲突刷新的确切性质取决于实际的程序

通常,建议使用该库来解决此问题。在从程序切换焦点的窗口中获取字符之前,可以(小心地)使用来解决问题。如果在窗口之间切换焦点(用于输入)时完成此操作,则效果相当不错。然而,我想到了几个可能的问题:

  • 如果输入来自一个窗口,并且两个窗口都在更新-但它们重叠-则不会看到另一个窗口的模糊部分
  • 例如,如果重新绘制是为了显示两个进程的状态(而不是等待输入),则相互竞争的
    wrefresh
    可能会很慢,而且会分散注意力

很抱歉,无法调试伪代码。如果粘贴到目前为止无法正常工作的代码,您将获得更多帮助。谢谢,我尝试了touchwin(),效果很好。touchwin()可能会出现什么样的问题?你为什么说“小心点”?