我已经搜索了一段时间,在Windows系统中找到一个用于C编程的功能,以确定按下了哪个键,而无需使用“enter”键进行确认。
我找到kbhit()
,但这只会在按键时返回正数,而0则在没有按键时返回。我想在函数上使用相同的行为,但返回我的密钥的ASCII码。
原因是我想在基于控制台的游戏上构建一些控件,我需要箭头来导航播放器。 'A'会让我的观点向左移动,'D'向右移动。
此时,我需要使用简单的scanf("%c")
按'a'和'enter','d'和'enter',如果控制台仅在按下字母时才会做出反应会很好而不是每次运动都输入+。
答案 0 :(得分:4)
看看这个:
char ch;
ch = getch();
if(ch == 's') printf("you pressed s \n");
答案 1 :(得分:3)
从你想要的东西的声音:
#include <conio.h>
int ch;
if (kbhit())
ch = getch();
getch()
阻止等待输入,但它会在没有缓冲的情况下读取一次击键,因此它不会等你按下回车键。