在c语言中,getch()函数用于从stdio流中读字符,即从控制台读取一个字符,但不显示在屏幕上;语法为:“int getch(void)”,返回读取的字符。

C语言中getch()函数

功 能: 从stdio流中读字符,即从控制台读取一个字符,但不显示在屏幕上

用 法:int getchar(void);

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

Windows下getch()在conio.h的头文件中,要使用getch()函数需要引用conio头文件。

代码:#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 ;

}

}

注解:

getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符.

getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.

如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.

也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.

getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回, getch返回值是用户输入的ASCII码,出错返回-1.输入的字符不会回显在屏幕上.

getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行.

推荐:《c语言教程》

c语言getch 的用法,c语言getch()的用法是什么?相关推荐

  1. c语言get()的作用,c语言get函数的用法有哪些

    C语言中gets从标准输入设备读字符串函数,可以无限读取,不会判断上限,今天学习啦小编在这里为大家介绍C语言get函数的用法,欢迎大家阅读! c语言get函数的用法:int getc(FILE *st ...

  2. linux中c语言kbhit函数用法,C语言判断用户是否输入-非阻塞函数kbhit

    一.基础研究 要从地址读取数据,肯定是要定义一个指针变量p,用它来实现变换地址和取值的功能.另外程序是当两个条件中的某一个出现时才停止,所以应该用while~do循环语句循环输出n和d,并用while ...

  3. c++中的fork函数_linux c语言 fork() 和 exec 函数的简介和用法

    linux c语言 fork() 和 exec 函数的简介和用法 假如我们在编写1个c程序时想调用1个shell脚本或者执行1段 bash shell命令, 应该如何实现呢? 其实在<stdli ...

  4. c语言switch和break用法,c语言里面你不知道的break与switch,contiune的用法

    前言:最近上完课在宿舍闲来无事,就拿起了C Primer Plus 这本书看,是自己入门编程的第一门语言:看了一些基本语法知识点,最让我需要总一下的是就是标题所说的这个语法知识点,记得大一的时候去考计 ...

  5. 零基础自学R语言 1 R语言介绍 1.4 基本R软件的用法

    零基础自学R语言 文章目录 零基础自学R语言 1 R语言介绍 1.4 基本R软件的用法 1.4.1 基本运行 1.4.2 项目目录 1 R语言介绍 1.4 基本R软件的用法 1.4.1 基本运行 在M ...

  6. C语言中常见的符号和注释的用法

    文章目录 前言 一.换行符号\n \n的具体用法和作用 二.取地址符号& &的具体用法和作用 三.注释 注释的格式 注释的作用 注释在代码中的具体体现 总结 前言 本篇文章主要给大家讲 ...

  7. C语言Double的作用,C语言double和float 实例分析用法

    C语言double和float 实例分析用法 C语言double和float 实例分析用法 小数也称实数或浮点数.例如,0.0.75.0.4.023.0.27.-937.198 都是合法的小数.这是常 ...

  8. c语言float的使用,C语言double和float实例分析用法

    C语言double和float 实例分析用法 C语言double和float 实例分析用法 小数也称实数或浮点数.例如,0.0.75.0.4.023.0.27.-937.198 都是合法的小数.这是常 ...

  9. getrand在c语言中的作用,c语言 rand 的用法

    C语言是一门通用计算机编程语言,应用广泛.下面,学习啦小编为大家整理了c语言 rand 的用法,希望对你有帮助哦! 一.步骤: 写入头文件 #include #include #include 变量的 ...

  10. 无效的变量名c语言,变量方法用法 _C语言-w3school教程

    C语言 的 变量 变量是内存位置的名称.它用于存储数据.其值可以更改,可以重复使用多次. 它是通过符号表示内存位置的方法,以便可以容易识别. 我们来看一下声明一个变量的语法: type variabl ...

最新文章

  1. 树莓派Android Things物联网开发:创建一个Things项目
  2. 苹果开发着账号:个人、公司、企业账号的申请流程
  3. 《Linux设备驱动程序》学习2—高级字符设备驱动ioctl
  4. Android插件基础之类加载器学习
  5. android xml正方形,使用Android Constraintlayout创建一排均匀分布的正方形
  6. 学会使用JDK API
  7. ATL CLR MFC Win32的区别
  8. PHP开发中的中文编码问题
  9. MemCache可视化客户端管理及监控工具TreeNMS
  10. samkoon触摸屏用什么软件编程_samdraw3.3软件下载
  11. 基于FairMOT的车流量统计
  12. 标准Io编程学习笔记
  13. pythoncqt_python基础篇
  14. Pandas 安装一半无法安装解决方法
  15. 浅析ERP系统--财务
  16. 4、keygen激活secureCRT
  17. ISO14229 理解(一)
  18. 一步一步带你爬天猫,获取杜蕾斯评论数据
  19. supervisor 初探
  20. 关于MATLAB中clear的用法

热门文章

  1. 登录双token方案
  2. Soul—分享电影瞬间,找到与你一起看电影的人
  3. 避免当野monkey, 走野路子
  4. minio 上传文件失败报错信息: The difference between the request time and the server‘s time is too large.
  5. (三)Linux vi 文本编辑器,用户管理,组管理,Sudo命令,时间管理
  6. Redis 惰性删除
  7. vue3.0之-watch全面解析
  8. ESP32 LVGL8.1 ——anim 动画 (anim 16)
  9. 1012循环神经网络 RNN 的实现
  10. (2)pokeman_简单卷积分类的例子