关于getch()函数

从百度上得知:

这个函数是一个不回显函数,当用户按下某个字符时,函数自动读取,无需按回车,有的C语言命令行程序会用到此函数做游戏,但是这个函数并非标准函数,要注意移植性!

所以有这样的一个接口,那就很牛逼了,至少可以做个游戏来玩下,结合ASCII码,很容易写个方向键控制的2048或者贪吃蛇等等有趣的游戏出来。

       以下是以一个简单的例子:

你会发现当你按下对应的按键的时候就会打印相应的语句。

#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <conio.h>
#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    //右

int  KEY_EXIT_STATU = 0 ;
int  KEY_ENTER_STATU = 0 ;
int  KEY_SPACE_STATU = 0 ;  

int  KEY_UP_STATU = 	0 ;
int  KEY_DOWN_STATU = 	0 ;
int  KEY_LEFT_STATU = 	0 ;
int  KEY_RIGHT_STATU =	0 ;  

char ch ; 

int get_value() ;
int main(void)
{

	int i = 0;
	while(1)
	{
		get_value();
	}
	return 0 ;
}

int get_value()
{
	ch = getch() ;
	system("cls");
	switch(ch)
	{
			case ESC :  KEY_EXIT_STATU = 1 ;
						printf("退出\n") ; break ;
			case ENTER :KEY_ENTER_STATU = 1 ;
						printf("回车\n") ; break ;
			case SPACE :
			 			KEY_SPACE_STATU = 1 ;
						printf("空格\n") ; break ;
			case KEY_UP:case 'w' :
			            KEY_UP_STATU = 1 ;
						printf("上\n") ; break ;
			case KEY_DOWN:case 's' :
						KEY_DOWN_STATU = 1 ;
						printf("下\n") ; break ;
			case KEY_LEFT:case 'a' :
				  		KEY_LEFT_STATU = 1 ;
						printf("左\n") ; break ;
			case KEY_RIGHT:case 'd':
						KEY_RIGHT_STATU = 1 ;
						printf("右\n") ; break ;
	}
}
时间: 2024-12-09 11:57:04

关于getch()函数的相关文章

有关于c语言中的getch函数

问题描述 有关于c语言中的getch函数 getch函数为什么对Ctrl或者alt之类的键没有反应??要想键盘随意按下一个键,就能进入程序,用什么函数?? 解决方案 getch是按键位分区来获取值的,就比如按下方向键会得到两个数,需要两次getch才能取完,如果有些按键是转意符,可以通过判断key键是否处于按下状态来确定. 解决方案二: getchar 函数名: getchar 功 能: 从stdio流中读字符 用 法: int getchar(void); 注解: getchar有一个int型

getch()、getche()和getchar()函数

原文:getch().getche()和getchar()函数 getch().getche()和getchar()函数 (1) getch()和getche()函数 这两个函数都是从键盘上读入一个字符.其调用格式为: getch(); getche(); 两者的区别是:getch()函数不将读入的字符回显在显示屏幕上,而getche() 函数却将读入的字符回显到显示屏幕 上.       例1: 1 #include"stdio.h" 2 #include"conio.h&

C语言中getch()与getchar()

getch()(): 所在头文件:conio.h 函数用途:从控制台读取一个字符,但不显示在屏幕上 例如: char ch;或int ch; getch()();或ch=getch()(); 用getch();会等待你按下任意键,再继续执行下面的语句; 用ch=getch();会等待你按下任意键之后,把该键字符所对应的ASCII码赋给ch,再执行下面的语句. getchar()(): 该函数声明在stdio.h头文件中,使用的时候要包含stdio.h头文件.如: #include int get

指针-我编的这个函数为什么没能实现功能?

问题描述 我编的这个函数为什么没能实现功能? 7.编写一个函数string_in(),它接受两个字符串指针参数.如果第二个字符串被包含在第一个字符串中,函数就返回被包含的字符开始的地址.例如,string_in("hats","at")返回hats中a的地址,则,函数返回空指针.在一个使用循环语句为这个函数提供输入的完整程序中进行测试. char string_in(char *p1,char *p2){ int m = 0; int i; char *p3 = p

控制台下星号密码输入的实现

最近频繁需要实现在windows控制台下输入星号密码的功能,Unix/Linux那种没有任何屏显的实现总感觉对用户不太友好.今天在自己的Linux代码库中发现了自己去年写图书馆管理系统的时候写的一个密码输入函数.索性拿来修改了接口并且重新优化了处理逻辑后移植到了windows下(其实也就是加上几句条件编译罢了).代码如下: #ifndef _WIN32 // 如果不是WIN32环境,则要自定义getch()函数 #include <termio.h> int getch(void) { str

Linux下C编程:getchar()详解

getchar 函数名: getchar 功 能: 从stdin流中读字符 用 法: int getchar(void); 注解: getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之

汇编语言命令参数程序的编写

一. 引言: 如果大家用过TurboC2.0/3.0 or BorlandC3.X等编译器编写DOS应用程序的话,编写一个命令行参数形式的应用程序对大家来说是一件非常容易的事情,只要在主函main()中加几个参数就OK(int main(int argc,char *argv[],char *env[]){}).相对汇编语言来说编写一个命令行参数的程序就比较艰难,它要用到DOS的程序段前缀PSP(Program Segment Prefix)知识以及其他相关DOS知识.(本文只对参数介绍,环境块

C++语言基础-C++操作符

操作符(operator)用于操作数据.操作符进行计算.检查等式.进行赋值.操作变量和进行其它更奇怪的工作.C++中有许多操作符,这里不想列出全部,只列出最常用的操作符,如下表所示.表1.2常用C++操作符操作符说明举例 算术运算符 + 加 x=y+z; - 减 x=y-z; * 乘 x=y*z; / 除 x=y/z; 赋值运算符 = 赋值 x=10; += 赋值与和 x+=10;(等于x=x+10;) -= 赋值与减 x-=10; *= 赋值与乘 x*=10; \= 赋值与除 x\=10; &

javascript实现根据汉字获取简拼_javascript技巧

主要用于模糊查询,或者快速查找 代码如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame Remove this if you use the .htaccess --&g