C++关于利用_kbhit()函数持续获取键盘输入的一点心得。

#C++关于利用_kbhit()函数持续获取键盘输入的一点心得。
小白路过想写个贪吃蛇玩玩,当用链表把贪吃蛇结构连起来后自然就想到了移动控制的问题。写来写去代码总是出错,贪吃蛇只有一直按着方向键才能移动,停止按键就不能移动,显然这是违背了游戏规则,于是乎上网搜索kbhit与getch连起来获取用户输入的资料(多线程暂时没想用),但是发现绝大部分都是单次使用,用于一次性判断是否否有按键输入,几乎没有循环判断,所以自己也是搞了好久才明白的。
#######不过后来我发现,这个是VS2017版遗留的一个问题, 在我2019年更新了VS之后,就没有了,这篇文章也不准备删,就留着当研究报告了,笑哭。。。。。。#########

先上个代码:

#include<iostream>
#include<conio.h>
#include<windows.h>
using namespace std;
char direction;
int main()
{
	direction = 'd';
	int i = 1;//这里的i用于测试按一次键读取的次数
	while (1)
	{
		Sleep(1000);
		if (_kbhit())
		{
			direction = _getch();
			char take = _getch();//这一步非常重要,千万不能少!
			cout << i << "test" << endl;
			i++;
		}
		cout << i << "*" << direction << endl;
	}
	/*cout << i <<
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值