【www.bbyears.com--C语言】
C语言中getch()函数详解及简单实例
前言:
这个函数是一个不回显函数,当用户按下某个字符时,函数自动读取,无需按回车,有的C语言命令行程序会用到此函数做游戏,但是这个函数并非标准函数,要注意移植性!
所以有这样的一个接口,那就很牛逼了,至少可以做个游戏来玩下,结合ASCII码,很容易写个方向键控制的2048或者贪吃蛇等等有趣的游戏出来。
以下是以一个简单的例子:
你会发现当你按下对应的按键的时候就会打印相应的语句。
代码如下
#include
#include
#include
#include
#define ESC 0x1B
#define ENTER 0x0D
#define SPACE 0x20
#define KEY_UP 72 //上
#define KEY_DOWN 80 //下
#define KEY_LEFT 75 //左
#define KEY_RIGHT 77 //右
intKEY_EXIT_STATU = 0 ;
intKEY_ENTER_STATU = 0 ;
intKEY_SPACE_STATU = 0 ;
intKEY_UP_STATU = 0 ;
intKEY_DOWN_STATU = 0 ;
intKEY_LEFT_STATU = 0 ;
intKEY_RIGHT_STATU = 0 ;
charch ;
intget_value() ;
intmain(void)
{
inti = 0;
while(1)
{
get_value();
}
return0 ;
}
intget_value()
{
ch = getch() ;
system("cls");
switch(ch)
{
caseESC : KEY_EXIT_STATU = 1 ;
printf("退出\n") ;break;
caseENTER :KEY_ENTER_STATU = 1 ;
printf("回车\n") ;break;
caseSPACE :
KEY_SPACE_STATU = 1 ;
printf("空格\n") ;break;
caseKEY_UP:case'w':
KEY_UP_STATU = 1 ;
printf("上\n") ;break;
caseKEY_DOWN:case's':
KEY_DOWN_STATU = 1 ;
printf("下\n") ;break;
caseKEY_LEFT:case'a':
KEY_LEFT_STATU = 1 ;
printf("左\n") ;break;
caseKEY_RIGHT:case'd':
KEY_RIGHT_STATU = 1 ;
printf("右\n") ;break;
}
}