Win11下_kbhit() 和 getch() 获取不到键盘信息问题

Win11下_kbhit() 和 getch() 获取不到键盘信息问题

在进行easyX图形开发,创建窗口时,需要采用_kbhit() and getch()获取键盘输入信息对窗口中的元素进行操作,具体情况如下:
在这里插入图片描述

需要按下空格键使人物进行跳跃操作,代码如下:

//处理用户按键输入
void keyEvent() {
	char ch;
	printf("1");//TEST
	if (_kbhit()) {//如果按键按下,_kbhit返回为真
		printf("2");//TEST
		ch = _getch();//_getch()不需要按下回车即可直接读取
		if (ch == ' ') {
			jump();
		}
	}
}

经过测试发现并没有进入if语句内(条件不满足)

后查阅资料发现,问题出在Win11控制台上。

kbhit() 和 getch()都是库文件conio.h中的函数,conio是控制台输入输出的简写(Console input/output),kbhit() 和 getch() 为控制台函数,仅在控制台程序中可用,在窗口程序中不能用。

在这里插入图片描述

当电脑选中终端的时候按下空格,窗口中人物可完成跳跃

在这里插入图片描述

解决办法:更改Win11系统

1.设置-系统

在这里插入图片描述

2.开发者选项

在这里插入图片描述

3.终端选择

在这里插入图片描述

4.选择Windows控制台主机

在这里插入图片描述

即可在窗口界面实现_kbhit()和getch()
仅供参考(学习用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值