getch方法_C语言中getch()函数详解及简单实例
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()函数详解及简单实例相关推荐
- getch方法_c语言中getch的用法
1 c 语言中 getch 的用法 getch() 函数是无回显的从控制台取得一个字符. 以利用 getch() 函数让程序调试运行结束后等待编程者按下键盘才返回编辑界面 , 即 任意键继续效果.下面 ...
- C语言中string函数详解
linux kernel code : kernel/lib/string.c strsep,strtok,strchr ,strstr ...... PS:本文包含了大部分strings函数的说明 ...
- C语言中memset函数详解(很清晰易懂)
功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作 用 法: void *memset(void * ...
- C语言中memset函数详解
功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作 用 法: void *memset(void * ...
- C语言中get_put函数详解,C语言第五课之getchar函数和putchar函数
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 getchar函数也就是键盘输入函数,这个函数和scanf函数不一样!getchar函数没有scanf函数灵活.下面就给大家介绍下getchar函数的介绍 ...
- C语言中get_put函数详解,C++ get()和put()读写文件详解
在某些特殊的场景中,我们可能需要逐个读取文件中存储的字符,或者逐个将字符存储到文件中.这种情况下,就可以调用 get() 和 put() 成员方法实现. C++ ostream::put()成员方法 ...
- c语言中strtok函数详解,手把手教你自主实现字符串切割函数,内附详细代码。
函数功能简介: 对字符串str进行切割,切割的标志为字符指针q指向的这两个字符 "# *":. 但是在对这个函数进行调用时,只有在第一次调用时,才会将str这个字符串的首地址传递过 ...
- C语言中scanf函数详解
scanf函数 上一节中我们讨论了,如何将整数,浮点数,字符串打印到屏幕上去.既然有输出,怎么能没有输入呢?这一节中,我们来介绍与printf相反的scanf函数. scanf的功能是将键盘输 ...
- c语言函数time用法,c语言中time函数详解
总结: time_t time(time_t *timer); 返回以格林尼治时间(GMT)为标准,从1970年1月1日00:00:00到此刻的本地时间所经过的秒数,time_t实际是个long长整型 ...
- java 函数fun_c语言中fun用法详解_后端开发
Java Dao层的作用_后端开发 Dao层叫数据访问层,属于一种比较底层,比较基础的操作,可以具体到对于某个表或某个实体的增删改查,其Dao层的作用是对数据库的访问进行封装,从而不涉及业务,实现解耦 ...
最新文章
- SQLServer2005表分区知识点摘要
- vm安装u盘linux,vmware 安装centos 插入u盘报错,大神请指导
- 数据库自动备份还原成新库脚本
- Redis实战(二):Redis 的 String 类型 bitmap
- destroy 方法_线程方法destroy()和stop(Throwable)在JDK 11中删除
- pv实现前趋图_Excel 数据透视图实现简易交互式数据面板
- LINQ是死是活?——很奇怪为什么会有这样的话题?
- 大疆Onboard SDK开发中连接飞控后串口设置与开机自启动
- Spring boot:注解@SpringBootApplication
- r语言 rgl 强制过程中_R语言中的方差分析方法汇总
- 用批处理文件阻止win10强制更新
- 旧手机上的微信数据丢失怎么才能恢复回来
- 企业如何操作网络口碑营销?
- 图片去水印的原理_图片中的水印怎么去除
- 创业公司中运营人员的典型一天是怎么度过的?
- 魔芋粉的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- JavaScript常见面试题
- 三色视者与四色视者身后的理论基础:色彩原理
- DeepFM:深度学习算法助力华为应用市场APP推荐
- java video src请求视频流,视频不能拖拽快进问题解决方案
热门文章
- 关于 c++ opencv [ INFO:0] global c:\build\master_winpack-build-win64-vc15\***
- MTK平台上电话黑名单功能总结
- 怎样创建数据库?4种流行数据库的创建方法介绍
- python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了
- 计算机网络技术与实验清华大学,清华大学计算机网络实验指示书.doc
- 前端纯css 图片的模糊处理
- 炫酷大屏demo_周末大放送 16几个炫酷的HTML5动画锦集
- idea中创建jsp项目详细步骤
- c 语言dll源码查看,易语言DLL函数查看器源码
- 【基于java的sftp操作工具类】