getch, getche, getchar 转
(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 转相关推荐
- 浅谈getch(),getche(),getchar(),gets(),scanf()的区别
getch(),getche(),getchar(),gets(),scanf()的区别,综合很多博客的文章. getch()和getchar() getchar()是C的标准库函数,包含在头文件&l ...
- getch(),getche(),getchar()的区别 (综合转)
先说基本区别. (1) getch()和getche()函数 这两个函数都是从键盘上读入一个字符.其调用格式为: getch(); getche(); 两者的区别是 ...
- C++之getch(),getche(),getchar()的区别
getchar() 函数名:getchar() 头文件:stdio.h 功 能:从I/O流中读字符 原 型:int getchar(void); getch() 函数名: getc ...
- C语言输入不同字符 屏幕显示不同,c语言中易混淆的东西 1 getch() getche()和getchar()之间区别 scanf sscanf (fscanf fgets fgetc )...
getch() getche()和getchar()之间区别 发布人 : IT专家 发布时间 : 2009-10-21 07:52:23.0 首先不要忘了,要用getch()必须引入头文件conio. ...
- C语言中getch()与getchar()
getch getch函数在C语言中使用时需包含的头文件为 conio.h ,应写为#include<conio.h> 函数原型为:int getch(void); getch的功能:从标 ...
- 趣学 C 语言(十)—— 控制台交互(getch() vs. getchar())
getch() vs getchar() getch()的功能是从键盘输入一个字符,但不在屏幕上显示.在这里,该行的作用是等待,只有当用户从键盘敲任一键时,程序才继续执行, 因此用户可利用这个等待时间 ...
- getch和getchar的区别
函数名: getch(); 功 能: 从控制台无回显地取一个字符 函数名: getchar(); 功 能: 从stdin流中读字符 函数名: scanf(); 功 能: getchar有一个int型的 ...
- C中kbhit()和getch()以及gets()和getchar()的用法
一.kbhit() 和 getch() C语言中kbhit()函数(conio.h):检查当前是否有键盘输入,若有则返回一个非0值,否则返回0. getch()函数,不需要回车就可以得到输入的控制字符 ...
- 编程王 kingofcoders.com
欢迎您 频道 Java .net c++ php VB SQL Server PostgreSQL 开源 Solaris BSD Linux Microsoft Mysql Oracle Bo ...
最新文章
- 判断均匀平面波的极化形式_测瑞通|怎样判断电波暗室的性能?
- php源码编程,10个小技巧让你做好php源码编程
- 作者:刘勇,山东农业大学教授、博士生导师。
- angular 首屏加载优化_[转]Angular4首页加载慢优化之路
- 改进版1--编译目录下代码
- c语言程序设计多个文件,c语言如何单文件变多文件(2个文件),求大神帮忙!!...
- 在水晶报表中插入子报表,并动态添加数据源
- 固高板卡mct2008调试轴回零_更新-LabVIEW固高函数库源码文档调试软件-2019年4月14日...
- 计算机毕业设计之校园二手交易平台
- 裤子尺码对照表eur40_欧洲40的尺码具体部位多少
- 端口和网络安全的关系
- pubg服务器维修时间段,pubg周几维护 | 手游网游页游攻略大全
- eclipse android模拟器 慢,android模拟器太慢怎么办?
- mybatisPlus根据起止时间作为条件进行查询
- 【你好,windows】Win10 X86x64 1709.2166企业G纯净版2020.11.27
- DataQL The content of elements must consist of well-formed character data or markup. 问题
- 钉钉E应用开发踩过的小坑之钉钉官网有两个全局错误码链接,啥区别??
- 3. 使用K8S部署tomcat
- Windows中FTP搭建
- windows服务无法启动解决方案