求C++按键响应的方式

2025-01-06 08:55:50
推荐回答(4个)
回答1:

按 W 不要太慢,否则 累加 超出 int 极限,循环次数 变负了。
#include
#include
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;
}

回答2:

1.c语言有专门的函数,比如bioskey()函数,用它可以获得键盘上按键的键值,获得键值之后,把它们记住,或者用宏定义,就可以为以后的 判断语句使用,

2.例程

#include
void main(void)
{
    int key=0;
    clrscr();
    while(key != 0x11b)   /*0x11b就是ESC键的键值,用它来判断结束,这是我事先知道的,方法是一样的*/
    {
        key = bioskey(0);
        printf("%x ",key);/*把获得的键值用16进制显示*/
    }
}

回答3:

基本思路用多线程实现,
循环累加是线程A,
监听键盘按键是线程B,当线程B监听到用户按下"W"时就终止线程A并输出数据.

回答4:

主线程

while(bPress){
i++;
sleep(1000);

}
printf(i)

起一个监控线程
while(1)
{

ch=getch();

if (ch=='W')
{
bPress = false;

break; //等于大写W 立即跳出while
}

};