我在获取ncurses的getch()阻止时遇到了一些问题。默认操作似乎是非阻塞的(或者我错过了一些初始化)?我希望它可以像Windows中的getch()一样工作。我尝试了各种版本的
timeout(3000000); nocbreak(); cbreak(); noraw(); etc...
(并非同时全部)。WINDOW如果可能的话,我宁愿不(明确地)使用any 。一个while围绕残培环路(),检查特定的返回值是OK了。
WINDOW
while
curses库是一揽子交易。如果不正确初始化库,您不能仅仅提出一个例程并希望获得最好的例程。这是正确阻塞的代码getch():
getch()
#include <curses.h> int main(void) { initscr(); timeout(-1); int c = getch(); endwin(); printf ("%d %c\n", c, c); return 0; }