当前位置: 技术问答>linux和unix
请教用GCC编译的C如何监控键盘的按键
来源: 互联网 发布时间:2015-11-05
本文导语: 想监控一下键盘的按键是否被press,用输入scanf()的话程序会一直停着直到输入数为止,而我只想监按一下当前键盘的按键是否被press,没有就继续执行程序。在WINDOW的TC3.0上我知是用 #include的bioskey()函数。请问GCC有没...
想监控一下键盘的按键是否被press,用输入scanf()的话程序会一直停着直到输入数为止,而我只想监按一下当前键盘的按键是否被press,没有就继续执行程序。在WINDOW的TC3.0上我知是用
#include的bioskey()函数。请问GCC有没有和bioskey()类似的监控键盘的函数。谢谢。
#include的bioskey()函数。请问GCC有没有和bioskey()类似的监控键盘的函数。谢谢。
|
这个不是编译器的功能,是终端的接口功能。
可以用getch()
在linux下,例如:
#include
int main()
{
initscr();
getch();
endwin();
}
编译时加上curses库:gcc test.c -o test -lcurses
Windows下,一般conio.h里面也有getch 函数。
可以用getch()
在linux下,例如:
#include
int main()
{
initscr();
getch();
endwin();
}
编译时加上curses库:gcc test.c -o test -lcurses
Windows下,一般conio.h里面也有getch 函数。
|
getch()可以设置为nodelay方式,就不会等了,如果用户没有输入就返回-1,否则就是用户输入的字符。
#include
int main()
{
WINDOW *win = initscr();
int c = -1;
nodelay(win, TRUE);
while(c == -1)
{
c = getch();
}
endwin();
}
#include
int main()
{
WINDOW *win = initscr();
int c = -1;
nodelay(win, TRUE);
while(c == -1)
{
c = getch();
}
endwin();
}