C语言怎么检测按键退出循环

C语言怎么检测按键退出循环,第1张

以前做过==特别麻烦,只说思路不想再编了,如果是字符数组比较好办,直接读写玩判断就行,如果是整形数组直接把数字转化成字符串然后加判断语句,实型数组转成字符串的时候还要考虑小数点位数==如果有简单的方法艾特我一下下,3q

你好:

一般使用 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进制显示/
}
}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13180121.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-16
下一篇 2023-06-16

发表评论

登录后才能评论

评论列表(0条)

保存