没有合适的资源?快使用搜索试试~ 我知道了~
c++中 getch()、getche()和getchar()之间的区别
5星 · 超过95%的资源 需积分: 50 16 下载量 190 浏览量
2011-04-26
22:21:09
上传
评论 2
收藏 38KB DOC 举报
温馨提示
试读
4页
c++中 getch()、getche()和getchar()总是大家迷惑的知识点 这里有他们之间的区别与联系 值得分析研究啊
资源详情
资源评论
资源推荐
getch()、getche()和 getchar()之间的区别
跟老婆讲了几次关于 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()有返回显示。怎么说呢?
我举个例子你就明白了。
--------------------------------------
#include<stdio.h>
#include<conio.h>
void main()
{
char ch;
for(int i=0;i<5;i++)
{
ch=getch();
printf("%c",ch);
}
}
--------------------------------------
这里输入输出我用的是 C 的函数库,没有用 C++的 iostream.h,这个我等会再说。首先
这是个连续 5 次的循环来实现 5 次停顿,等待我们输入,我们编译并运行这个程序,假设
1
liqiang362
- 粉丝: 12
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5