为什么我使用ncurses时cout和cin会弹出错误..?

Why cout and cin would pop up error when I use ncurses..?

Emmm...我正在编写一个代码,它可以在用户按下该键后立即读取用户输入... 我在网上找到了代码:

initscr();
cbreak();               
noecho();               
scrollok(stdscr, TRUE);     
nodelay(stdscr, TRUE);
while (true) {
    if (getch() == 'g') {
        printw("You pressed G\n");
    }
    napms(500);
    printw("Running\n");
}

效果很好..然后我转而使用 cout 打印我在 getch() 中阅读的内容... 我现在很困惑 nucurse.h 如何处理 cout 或者我的意思是标准 I/O..?

initscr 告诉 (n)curses 写入标准输出。然而,ncurses 将它的写入与 cout 流分开缓冲(例如参见 ncurses6 发行说明中的​​ Output buffering),并在被告知 refresh 时刷新它的输出。 getch 调用 refresh 作为副作用。您的示例中没有其他 refresh 调用。

ncurses(如 SVr4 curses)将其 input 设置为 raw mode,但该方面与您的无关cout.

的问题