求C++按键响应的方式
我想用即时读取按键来控制程序比如,程序循环,无限次的累加,在循环累加的过程中,如果一旦键盘敲一下“W”,无需回车,就跳出循环并输出已循环的次数,该怎么实现?...
我想用即时读取按键来控制程序
比如,程序循环,无限次的累加,在循环累加的过程中,如果一旦键盘敲一下“W”,无需回车,就跳出循环并输出已循环的次数,该怎么实现? 展开
比如,程序循环,无限次的累加,在循环累加的过程中,如果一旦键盘敲一下“W”,无需回车,就跳出循环并输出已循环的次数,该怎么实现? 展开
4个回答
展开全部
按 W 不要太慢,否则 累加 超出 int 极限,循环次数 变负了。
#include<stdio.h>
#include <conio.h>
main(){int i=0;
char ch;
printf("press W:\n");
while(1){
if (!kbhit()){i++; // 做累加或任何你想做的工作
} else {
ch=getch(); //抓1个键输入
if (ch=='W') break; //等于大写W 立即跳出while
};
};
printf("%d",i);
return 0;
}
#include<stdio.h>
#include <conio.h>
main(){int i=0;
char ch;
printf("press W:\n");
while(1){
if (!kbhit()){i++; // 做累加或任何你想做的工作
} else {
ch=getch(); //抓1个键输入
if (ch=='W') break; //等于大写W 立即跳出while
};
};
printf("%d",i);
return 0;
}
强立科技
2024-08-14 广告
2024-08-14 广告
信号放大器安装?这个问题是见仁见智的。这些都必须选用与之对应的信号放大器。 如果自己实在不懂怎么选择,可以咨询专业人员,你只需告诉专业人员需要解决的问题,一般都能适合你的设备给您。建议咨询北京强立科技有限公司,公司专业从事周边地区电视器材销...
点击进入详情页
本回答由 强立科技提供
展开全部
1.c语言有专门的函数,比如bioskey()函数,用它可以获得键盘上按键的键值,获得键值之后,把它们记住,或者用宏定义,就可以为以后的 判断语句使用,
2.例程
#include<stdio.h>
void main(void)
{
int key=0;
clrscr();
while(key != 0x11b) /*0x11b就是ESC键的键值,用它来判断结束,这是我事先知道的,方法是一样的*/
{
key = bioskey(0);
printf("%x ",key);/*把获得的键值用16进制显示*/
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
基本思路用多线程实现,
循环累加是线程A,
监听键盘按键是线程B,当线程B监听到用户按下"W"时就终止线程A并输出数据.
循环累加是线程A,
监听键盘按键是线程B,当线程B监听到用户按下"W"时就终止线程A并输出数据.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主线程
while(bPress){
i++;
sleep(1000);
}
printf(i)
起一个监控线程
while(1)
{
ch=getch();
if (ch=='W')
{
bPress = false;
break; //等于大写W 立即跳出while
}
};
while(bPress){
i++;
sleep(1000);
}
printf(i)
起一个监控线程
while(1)
{
ch=getch();
if (ch=='W')
{
bPress = false;
break; //等于大写W 立即跳出while
}
};
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询