getch()、getche()和getchar()函数-阿里云开发者社区

开发者社区> 杰克.陈> 正文

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

简介: 原文:getch()、getche()和getchar()函数 getch()、getche()和getchar()函数(1) getch()和getche()函数  这两个函数都是从键盘上读入一个字符。
+关注继续查看
原文:getch()、getche()和getchar()函数

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

(1) getch()和getche()函数
 这两个函数都是从键盘上读入一个字符。其调用格式为:
  getch();
  getche();
 两者的区别是:getch()函数不将读入的字符回显在显示屏幕上,而getche() 函数却将读入的字符回显到显示屏幕

上。

      例1:

 1 #include"stdio.h"
2 #include"conio.h"
3 void main()
4 {
5 char c, ch;
6 c=getch(); /*从键盘上读入一个字符不回显送给字符变量c*/
7 putchar(c); /*输出该字符*/
8 ch=getche(); /*从键盘上带回显的读入一个字符送给字符变量ch*/
9 putchar(ch);
10 }

利用回显和不回显的特点, 这两个函数经常用于交互输入的过程中完成暂停等功能。
      例2:

 1 #include"stdio.h"
2 #include"conio.h"
3 void main()
4 {
5 char s[20];
6 printf("Name:");
7 gets(s);
8 printf("Press any key to continue...");
9 getch(); /*等待输入任一键*/
10 }

(2) getchar()函数
 getchar()函数也是从键盘上读入一个字符, 并带回显。它与前面两个函数的区别在于: getchar()函数等待输入直

到按回车才结束,   回车前的所有输入字符都会逐个显示在屏幕上。但只有第一个字符作为函数的返回值。

     例3:

  1. #include"stdio.h"
  2.       #include"conio.h"
  3.       void main()
  4.       {
  5.            char c;
  6.            c=getchar();    /*从键盘读入字符直到回车结束*/
  7.            putchar(c);     /*显示输入的第一个字符*/
  8.            getch();        /*等待按任一健*/
  9.       }

例4:

  1. #include"stdio.h"
  2.       #include"conio.h"
  3.       void main()
  4.       {
  5.            char c;
  6.            while ((c=getchar())!='\n')    /*每个getchar()依次读入一个字符*/
  7.            printf("%c",c);     /*按照原样输出*/
  8.            getch();        /*等待按任一健*/
  9.       }

编程中,以防程序运行一闪即失,总是要在最后来一个“getch();”
 getch()和getche()需要"conio.h"
附:
getch     从键盘无回显地读一字符
调用格式       #include"stdio.h"
          int getch(void);
原型在    conio.h
说明      getch从键盘直接读一个字符,不回显到屏幕上。
返回值    getch返回从键盘所读的字符。
可移植性 getch只适用于DOS

getchar   从stdin流中取字符
调用格式     #include"conio.h"
          int getchar(void);
原型在    stdio.h
说明      getchar是一个宏,用于返回指定的stdin输入流的下一个字符,    它定义为getc(stdin)。
返回值    调用成功时,getchar返回所读的字符,它已被转换为无符号扩展的整形值。在遇到文件结束或出错时,

返回EOF。
可移植性 getchar适用于UNIX系统,在ANSI C中定义,与Kernighan和Ritchie的定义兼容

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
array_unshift() 函数在数组开头插入一个或多个元素。被加上的元素作为一个整体添加,这些元素在数组中的顺序和在参数中的顺序一样 array_unshift()定义和用法 array_unshift() 函数在数组开头插入一个或多个元素。
685 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
8497 0
PolarDB-X 1.0-SQL 手册-函数-加密和压缩函数
本文主要介绍PolarDB-X支持和不支持的加密和压缩函数。
15 0
*** $CI =& get_instance() 用法:关于CodeIgniter中get_instance() 函数
 使用场景: 注意 get_instance 的使用场景,这个方法并不是用在控制器中的。而是用在控制器外面,比如类库中,想操作 CI 超级对象的时候,超级对象实际上就是当前控制器的实例。     你随便下个CI框架的源码都会看到很多的get_instance() 函数,这个函数是用来获取CI 的全局超级对象,CI 是单例模式的框架,所有全局有一个超级对象。
819 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10320 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
12172 0
[译]介绍Spark2.4的用于处理复杂数据类型的新内置函数与高阶函数
Apache Spark2.4引入了29个新的内置函数用于处理复杂数据类型(比如,数组类型等),新的内置函数也包括高阶函数。 在Spark2.4版本之前,有两种典型的方式处理复杂数据类型: 1. 将嵌套结构的数据转化为多行数据,然后使用函数处理,最后在组装成嵌套结构。
1477 0
PolarDB-X 1.0-SQL 手册-函数-窗口函数
传统的Group By函数会按照分组后的查询结果进行聚合计算,且每个分组只输出一条数据。但与传统的Group By函数不同,窗口函数(也称OLAP函数)可以为每个分组返回多个值,且不会影响记录的数量。本文介绍如何使用窗口函数。
19 0
+关注
杰克.陈
一个安静的程序猿~
10427
文章
2
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载