(1) getch()和getche()函数 
    这两个函数都是从键盘上读入一个字符。其调用格式为: 
     getch(); 
     getche(); 
    两者的区别是: getch()函数不将读入的字符回显在显示屏幕上, 而getche() 
函数却将读入的字符回显到显示屏幕上。 
    例1: 
     #include<stdio.h> 
     main() 
     { 
          char c, ch; 
          c=getch();     /*从键盘上读入一个字符不回显送给字符变量c*/ 
          putchar(c);    /*输出该字符*/ 
          ch=getche();   /*从键盘上带回显的读入一个字符送给字符变量ch*/ 
          putchar(ch); 
     } 
    利用回显和不回显的特点, 这两个函数经常用于交互输入的过程中完成暂停 
等功能。 
    例2: 
     #include<stdio.h> 
     main() 
     { 
          char c, s[20]; 
          printf("Name:"); 
          gets(s); 
          printf("Press any key to continue..."); 
          getch();  /*等待输入任一键*/ 
     } 
  
    (2) getchar()函数 
    getchar()函数也是从键盘上读入一个字符, 并带回显。它与前面两个函数 
的区别在于: getchar()函数等待输入直到按回车才结束,  回车前的所有输入字 
符都会逐个显示在屏幕上。但只有第一个字符作为函数的返回值。 
    getchar()函数的调用格式为: 
     getchar(); 
    例3: 
     #include<stdio.h> 
     main() 
     { 
          char c; 
          c=getchar();   /*从键盘读入字符直到回车结束*/ 
          putchar(c);    /*显示输入的第一个字符*/ 
          getch();       /*等待按任一健*/ 
     } 
例4
#include<stdio.h> 
     main() 
     { 
          char c; 
          while ((c=getchar())!='/n')   /*每个getchar()依次读入一个字符*/
          printf("%c",c);    /*按照原样输出*/
          getch();       /*等待按任一健*/ 
     }

再说下文件尾部getch();的原因。

首先不要忘了,要用getch()必须引入头文件conio.h,以前学C语言的时候,我们总喜欢用在程序的末尾加上它,利用它来实现程序运行完了暂停不退出的效果。如果不加这句话,在TC2.0的环境中我们用Ctrl+F9编译并运行后,程序一运行完了就退回到TC环境中,我们根本来不及看到结果,这时要看结果,我们就要按Alt+F5回到DOS环境中去看结果,这很麻烦。而如果在程序的结尾加上一行getch();语句,我们就可以省掉会DOS看结果这个步骤,因为程序运行完了并不退出,而是在程序最后把屏幕停住了,按任意键才退回到TC环境中去。那我们来看看getch()到底起的什么作用,getch()实际是一个输入命令,就像我们用cin>>的时候程序会停下来等你输入,和cin不同的是,getch()的作用是从键盘接收一个字符,而且并不把这个字符显示出来,就是说,你按了一个键后它并不在屏幕上显示你按的什么,而继续运行后面的代码,所以我们在C++中可以用它来实现“按任意键继续”的效果,即程序中遇到getch();这行语句,它就会把程序暂停下来,等你按任意键,它接收了这个字符键后再继续执行后面的代码。
  你也许会问,为什么我们在C++中就没有在程序的末尾加上getch(),解释是,软件总是不断更新的,不好的地方当然要进行改正,getch()加在程序末尾,它又不赋值给任何变量,所以它在这个地方完全是垃圾代码,与程序无关。C++中考虑到这一点,于是在每次程序运行完了并不退出,而是自动把屏幕停下来,并显示“press any key...”叫你按任意键退出,这就好比C++在它的环境中运行程序,在程序的末尾自动加上了一行getch();语句,并且在这行语句前还添加了一行输出语句cout<<"press any key...";来提示你程序结束了,按任意键继续。实际上我们编译好的程序在程序结束了本身是不会停下来的,我们可以在编译产生的Debug目录中找到这个编译好的应用程序(扩展名exe),在文件夹中双击运行它,你会发现屏幕闪了一下MS-DOS窗口就关闭了,因为程序运行完就自动退出了,回到了windows环境,当然,如果我们在DOS环境中运行这个程序,我们就可以直接在看到DOS屏幕上看到程序运行结果,因为程序运行完后并不清屏。
  还有一个语句,和getch()很相似,getche(),它也需要引入头文件conio.h,那它们之间的区别又在哪里呢?不同之处就在于getch()无返回显示,getche()有返回显示。

http://blog.csdn.net/hairetz/article/details/4161954

转载于:https://www.cnblogs.com/aprilapril/archive/2013/04/18/3029554.html

getch, getche, getchar 转相关推荐

  1. 浅谈getch(),getche(),getchar(),gets(),scanf()的区别

    getch(),getche(),getchar(),gets(),scanf()的区别,综合很多博客的文章. getch()和getchar() getchar()是C的标准库函数,包含在头文件&l ...

  2. getch(),getche(),getchar()的区别 (综合转)

    先说基本区别. (1) getch()和getche()函数     这两个函数都是从键盘上读入一个字符.其调用格式为:      getch();      getche();     两者的区别是 ...

  3. C++之getch(),getche(),getchar()的区别

    getchar()     函数名:getchar()     头文件:stdio.h 功  能:从I/O流中读字符 原  型:int getchar(void); getch() 函数名: getc ...

  4. C语言输入不同字符 屏幕显示不同,c语言中易混淆的东西 1 getch() getche()和getchar()之间区别 scanf sscanf (fscanf fgets fgetc )...

    getch() getche()和getchar()之间区别 发布人 : IT专家 发布时间 : 2009-10-21 07:52:23.0 首先不要忘了,要用getch()必须引入头文件conio. ...

  5. C语言中getch()与getchar()

    getch getch函数在C语言中使用时需包含的头文件为 conio.h ,应写为#include<conio.h> 函数原型为:int getch(void); getch的功能:从标 ...

  6. 趣学 C 语言(十)—— 控制台交互(getch() vs. getchar())

    getch() vs getchar() getch()的功能是从键盘输入一个字符,但不在屏幕上显示.在这里,该行的作用是等待,只有当用户从键盘敲任一键时,程序才继续执行, 因此用户可利用这个等待时间 ...

  7. getch和getchar的区别

    函数名: getch(); 功 能: 从控制台无回显地取一个字符 函数名: getchar(); 功 能: 从stdin流中读字符 函数名: scanf(); 功 能: getchar有一个int型的 ...

  8. C中kbhit()和getch()以及gets()和getchar()的用法

    一.kbhit() 和 getch() C语言中kbhit()函数(conio.h):检查当前是否有键盘输入,若有则返回一个非0值,否则返回0. getch()函数,不需要回车就可以得到输入的控制字符 ...

  9. 编程王 kingofcoders.com

    欢迎您   频道 Java .net c++ php VB SQL Server PostgreSQL 开源   Solaris BSD Linux Microsoft Mysql Oracle Bo ...

最新文章

  1. 判断均匀平面波的极化形式_测瑞通|怎样判断电波暗室的性能?
  2. php源码编程,10个小技巧让你做好php源码编程
  3. 作者:刘勇,山东农业大学教授、博士生导师。
  4. angular 首屏加载优化_[转]Angular4首页加载慢优化之路
  5. 改进版1--编译目录下代码
  6. c语言程序设计多个文件,c语言如何单文件变多文件(2个文件),求大神帮忙!!...
  7. 在水晶报表中插入子报表,并动态添加数据源
  8. 固高板卡mct2008调试轴回零_更新-LabVIEW固高函数库源码文档调试软件-2019年4月14日...
  9. 计算机毕业设计之校园二手交易平台
  10. 裤子尺码对照表eur40_欧洲40的尺码具体部位多少
  11. 端口和网络安全的关系
  12. pubg服务器维修时间段,pubg周几维护 | 手游网游页游攻略大全
  13. eclipse android模拟器 慢,android模拟器太慢怎么办?
  14. mybatisPlus根据起止时间作为条件进行查询
  15. 【你好,windows】Win10 X86x64 1709.2166企业G纯净版2020.11.27
  16. DataQL The content of elements must consist of well-formed character data or markup. 问题
  17. 钉钉E应用开发踩过的小坑之钉钉官网有两个全局错误码链接,啥区别??
  18. 3. 使用K8S部署tomcat
  19. Windows中FTP搭建
  20. windows服务无法启动解决方案

热门文章

  1. 利用python进行数据分析D1——ch02引言
  2. imagePreview接口调用微信自带图片播放器
  3. Oracle bigfile 大文件表空间会影响rman等备份效率
  4. 数据校验器架构模式组
  5. 用树莓派和PC机搭建多节点私人以太坊网络
  6. 第4章 变量、作用域和内存问题
  7. 2-1 gradle安装
  8. Swing学习1——总体概述
  9. vue.js:利用vue.js做一个抽奖小游戏
  10. python-list:列表-元组-字符串