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

时间:2017-08-25 19:27:30

标签: c++ ncurses

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

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 ..?

1 个答案:

答案 0 :(得分:0)

initscr告诉(n)curses写入标准输出。但是,ncurses将其写入与cout流分开缓存(请参阅ncurses6发行说明中的​​示例Output buffering),并在告知refresh时刷新其输出。 getch作为副作用进行refresh调用。你的例子中没有其他refresh个电话。

ncurses(与SVr4 curses一样)将输入设置为原始模式,但该方面与cout的问题无关。