|
函数原型:
函数描述:
在不进行任何模式设置的情况下,getch() 对输入的模式是 nocbreak 。
测试代码:
#include <curses.h>
#include <stdlib.h>
int main()
{
int key;
initscr();
nocbreak(); /*先设置为 no-cbreak 模式*/
key = getch();
if (key == 'Y' || key == 'y') {
mvwprintw(stdscr, 5, 5, "your answer is yes");
mvwprintw(stdscr, 6, 5, "%s,%c", "The first char is ", key);
refresh();
sleep(3);
}else {
mvwprintw(stdscr, 5, 5, "%s", "key is not 'Y' or 'y'\n");
mvwprintw(stdscr, 6, 5, "%s,%c", "The first char is ", key);
refresh();
sleep(3);
}
endwin();
exit(EXIT_SUCCESS);
} 说明-1:
在上面的程序中,先设置了 no-cbreak 模式,也就是先缓冲,需等待回车键的确认后才送出处理。所以,对于输入,不论输入字符串多长,最终要让 getch() 得到输入串中的第一个字符,那就需要经过回车把输入送出后才行。
如果在程序中事先使用 nocbreak() 函数,那么就默认的在 cbreak 模式下,如此一来,字符已经输入就马上会被送到程序中处理,毫不等待。 |
|