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 //右

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 ;

}

}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

getch方法_C语言中getch()函数详解及简单实例相关推荐

  1. getch方法_c语言中getch的用法

    1 c 语言中 getch 的用法 getch() 函数是无回显的从控制台取得一个字符. 以利用 getch() 函数让程序调试运行结束后等待编程者按下键盘才返回编辑界面 , 即 任意键继续效果.下面 ...

  2. C语言中string函数详解

    linux kernel code :  kernel/lib/string.c strsep,strtok,strchr ,strstr ...... PS:本文包含了大部分strings函数的说明 ...

  3. C语言中memset函数详解(很清晰易懂)

    功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作 用 法: void *memset(void * ...

  4. C语言中memset函数详解

    功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作 用 法: void *memset(void * ...

  5. C语言中get_put函数详解,C语言第五课之getchar函数和putchar函数

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 getchar函数也就是键盘输入函数,这个函数和scanf函数不一样!getchar函数没有scanf函数灵活.下面就给大家介绍下getchar函数的介绍 ...

  6. C语言中get_put函数详解,C++ get()和put()读写文件详解

    在某些特殊的场景中,我们可能需要逐个读取文件中存储的字符,或者逐个将字符存储到文件中.这种情况下,就可以调用 get() 和 put() 成员方法实现. C++ ostream::put()成员方法 ...

  7. c语言中strtok函数详解,手把手教你自主实现字符串切割函数,内附详细代码。

    函数功能简介: 对字符串str进行切割,切割的标志为字符指针q指向的这两个字符 "# *":. 但是在对这个函数进行调用时,只有在第一次调用时,才会将str这个字符串的首地址传递过 ...

  8. C语言中scanf函数详解

    scanf函数   上一节中我们讨论了,如何将整数,浮点数,字符串打印到屏幕上去.既然有输出,怎么能没有输入呢?这一节中,我们来介绍与printf相反的scanf函数.   scanf的功能是将键盘输 ...

  9. c语言函数time用法,c语言中time函数详解

    总结: time_t time(time_t *timer); 返回以格林尼治时间(GMT)为标准,从1970年1月1日00:00:00到此刻的本地时间所经过的秒数,time_t实际是个long长整型 ...

  10. java 函数fun_c语言中fun用法详解_后端开发

    Java Dao层的作用_后端开发 Dao层叫数据访问层,属于一种比较底层,比较基础的操作,可以具体到对于某个表或某个实体的增删改查,其Dao层的作用是对数据库的访问进行封装,从而不涉及业务,实现解耦 ...

最新文章

  1. SQLServer2005表分区知识点摘要
  2. vm安装u盘linux,vmware 安装centos 插入u盘报错,大神请指导
  3. 数据库自动备份还原成新库脚本
  4. Redis实战(二):Redis 的 String 类型 bitmap
  5. destroy 方法_线程方法destroy()和stop(Throwable)在JDK 11中删除
  6. pv实现前趋图_Excel 数据透视图实现简易交互式数据面板
  7. LINQ是死是活?——很奇怪为什么会有这样的话题?
  8. 大疆Onboard SDK开发中连接飞控后串口设置与开机自启动
  9. Spring boot:注解@SpringBootApplication
  10. r语言 rgl 强制过程中_R语言中的方差分析方法汇总
  11. 用批处理文件阻止win10强制更新
  12. 旧手机上的微信数据丢失怎么才能恢复回来
  13. 企业如何操作网络口碑营销?
  14. 图片去水印的原理_图片中的水印怎么去除
  15. 创业公司中运营人员的典型一天是怎么度过的?
  16. 魔芋粉的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  17. JavaScript常见面试题
  18. 三色视者与四色视者身后的理论基础:色彩原理
  19. DeepFM:深度学习算法助力华为应用市场APP推荐
  20. java video src请求视频流,视频不能拖拽快进问题解决方案

热门文章

  1. 关于 c++ opencv [ INFO:0] global c:\build\master_winpack-build-win64-vc15\***
  2. MTK平台上电话黑名单功能总结
  3. 怎样创建数据库?4种流行数据库的创建方法介绍
  4. python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了
  5. 计算机网络技术与实验清华大学,清华大学计算机网络实验指示书.doc
  6. 前端纯css 图片的模糊处理
  7. 炫酷大屏demo_周末大放送 16几个炫酷的HTML5动画锦集
  8. idea中创建jsp项目详细步骤
  9. c 语言dll源码查看,易语言DLL函数查看器源码
  10. 【基于java的sftp操作工具类】