C++ Ncurses:在创建下一个窗口后,在上一个窗口中写入失败

C++ Ncurses:在创建下一个窗口后,在上一个窗口中写入失败,c++,c,ncurses,C++,C,Ncurses,我已经创建了两个Ncurses窗口:窗口1和窗口2。我能够在调用窗口2之前写入窗口1;但是,在调用窗口2之后,我无法使用mvwprinw(窗口1,“Bla”)写入窗口1。举例说明: ... initscr(); Window* window1 = newwin(10,10,0,0); mvwprinw(window1, "i am writing to window"); // this works wrefresh(window1); Window* window2 = newwin

我已经创建了两个Ncurses窗口:窗口1和窗口2。我能够在调用窗口2之前写入窗口1;但是,在调用窗口2之后,我无法使用mvwprinw(窗口1,“Bla”)写入窗口1。举例说明:

...

initscr();
Window* window1 = newwin(10,10,0,0);
mvwprinw(window1, "i am writing to window");    // this works
wrefresh(window1);

Window* window2 = newwin(10,10, 12, 12);
mvwprintw(window2, "whee");             //works too
wrefresh(window2);

mvwprintw(window1, 0,0,"writing new sentence");     
// this does not show on the screen
wrefresh(window1);

...
为什么会这样?

解决了:

如果遇到类似问题,请注意在多个C++类中编写窗口。

在其中一个类中构建了侦听器类。然而,它称为无限循环(不是设计代码的最佳方式,但对于程序来说已经足够了)

因此,代码卡在无限循环中,导致下一行代码保持未执行状态


解决方案:必要时使用多线程libs。

您所说的“失败”是什么意思?撞车?什么也不写?打印你的秘密文件?此外,您的代码看起来可疑:mvwprintw的签名与我看到的文档不匹配:edited(:它什么也不写,即使在调用wrefresh()之后也是如此)。您的代码仍然明显损坏,例如mvwprinw中的键入错误和缺少的x、y参数。我建议在请求帮助之前先修复代码,因为它现在状态不好。同样,在我的系统中,该类型被称为WINDOW,而不是WINDOW。