一般使用 getch() 函数来获取按键的 ASCII 码值,作为函数的返回值。该函数在 conioh 头文件中。
示例:
#include <conioh>
#include <stdioh>
int main(int argc, char argv[])
{
char k;
printf("1新增记录\n");
printf("2修改记录\n");
printf("3删除记录\n");
printf("请选择:");
k=getch();
switch(k)
{
case '1':
add();
break;
case '2':
modify();
break;
case '3':
del();
break;
}
}这个可以这样实现:
#include<reg51h>
#define uchar unsigned char
uchar time=0;
sbit key=P1^0;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
time++;
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
while(key) // 如果按键未按下则执行循环
{
if(time>100)break; //如果时间大于5秒,退出循环。
}
}
}首先,连续两次按键不是C的功能(严格讲,C标准没有按键这个功能的)而是你的 *** 作系统或平台的功能(如单片机和PC肯定不同)windwos下,1般编译器有1个kbhit()函数(VC,gcc,c++builder都有)它可判断是不是有键按下,这样就能够实现你的要求以下程序连续两次按键后退出#includeconiohintmain(){while(kbhit()==0);getch();///按了1次while(kbhit()==0);getch();///按了2次return0;}固然,如果你是单片机或其它平台,kbhit()或许就要自己实现了,用它可以获得键盘上按键的键值,获得键值之后,把它们记住,或者用宏定义,就可以为以后的 判断语句使用,
for example:
#include<stdioh>
void main(void)
{
int key=0;
clrscr();
while(key != 0x11b) /0x11b就是ESC键的键值,用它来判断结束,这是我事先知道的,方法是一样的/
{
key = bioskey(0);
printf("%x ",key);/把获得的键值用16进制显示/
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)