为什么我使用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
.
的问题
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
.