当前位置: 技术问答>linux和unix
怎样实现用户一敲入一个字符 程序就做出响应的呢?
来源: 互联网 发布时间:2015-06-02
本文导语: 我原来是用while(getchar()!=EOF) 不过好像不行.用户要按下enter后才会有响应. 应该怎么做呢? 还有一点.在linux下怎么查函数呢? 有时候man 不到要的函数... ^_^ 谢谢大家了 | 修改终端属性,用tcsetat...
我原来是用while(getchar()!=EOF)
不过好像不行.用户要按下enter后才会有响应. 应该怎么做呢?
还有一点.在linux下怎么查函数呢? 有时候man 不到要的函数...
^_^ 谢谢大家了
不过好像不行.用户要按下enter后才会有响应. 应该怎么做呢?
还有一点.在linux下怎么查函数呢? 有时候man 不到要的函数...
^_^ 谢谢大家了
|
修改终端属性,用tcsetattr
struct termios term;
tcgetattr(STDIN_FILENO, &term);
term.c_lflag &= ~ICANON;
tcsetattr(STDIN_FILENO, TCSAFLUSH, &term);
struct termios term;
tcgetattr(STDIN_FILENO, &term);
term.c_lflag &= ~ICANON;
tcsetattr(STDIN_FILENO, TCSAFLUSH, &term);
|
// demo.c
#include
int main()
{
initscr();
printw("Press any key!n");
refresh();
getch();
printw("You had pressed one key!n");
refresh();
endwin();
return 0;
}
gcc -o demo demo.c -lncurses
#include
int main()
{
initscr();
printw("Press any key!n");
refresh();
getch();
printw("You had pressed one key!n");
refresh();
endwin();
return 0;
}
gcc -o demo demo.c -lncurses
|
用curses库吧。
|
可以,但先得设置终端显示为非标准模式!
见《unix环境高级编程>>
见《unix环境高级编程>>