2012-03-16 99 views
0

我已经搜索了一段时间,在Windows系统中找到一个函数用于C编程,以确定哪个按键被按下,而不需要用'确认'键来确认。按回车键不用确认

我发现kbhit(),但这只在按键时返回正值,而在没有按键的情况下为0。我想要一个函数的同样的行为,但返回我的密钥的ASCII码。

原因是我想在基于控制台的游戏上构建一些控件,我需要箭头来导航玩家。 'A'会将我的观点左移,'D'正确。

在这个时刻,我需要按“a”和“进”,“D”和“进入,”用简单的scanf("%c"),并且将是很好,如果控制台会做出什么反应只有当按下一个字母,而不是+进入每一个动作。

回答

3

从事物的声音,你想是这样的:

#include <conio.h> 

int ch; 

if (kbhit()) 
    ch = getch(); 

getch()块等待输入,但它会读取无需缓冲一个按键,因此它不会等你按下回车键。

+0

实际上,如果,但是是(的kbhit()!)。从来不知道getch如何工作。总是用它来停止控制台退出等等。谢谢。 – 2012-03-16 16:51:32

4

看看这个:

char ch; 
ch = getch(); 
if(ch == 's') printf("you pressed s \n");