getch()和getchar()的区别.doc

getch()和getchar()的区别.doc

ID:48386187

大小:31.00 KB

页数:3页

时间:2019-08-04

getch()和getchar()的区别.doc_第1页
getch()和getchar()的区别.doc_第2页
getch()和getchar()的区别.doc_第3页
资源描述:

《getch()和getchar()的区别.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、getchar、getch区别与用法收藏getchar()和getch()的问题一直困扰着大家,关于他们的区别也是众说纷纭,可没有一种说法是详细、深入的,今天我就在前人已有的成果上,试着与大家继续探讨下这个问题:   先看看规范点的说法:       getchar   Thisisastandardfunctionthatgetsacharacterfromthestdin.   getch   Thisisanonstandardfunctionthatgetsacharacterfromkeyboard,doesnotechotoscreen

2、.   getche   Thisisanonstandardfunctionthatgetsacharacterfromthekeyboard,echoestoscreen.Usegetcharifyouwantittoworkonallcompilers.Usegetchorgetcheonasystemthatsupportsitwhenyouwantkeyboardinputwithoutpressing[Enter].Andnotethatthereturnvalueofallthreeisint!Youneedthistoproperl

3、ycheckforEOF.    结合实际,谈谈具体的区别与用法:   getchar()函数只有在满足输入次数要求的前提下,遇到回车时才结束输入,之前所有的字符都会逐个显示在屏幕上,但是只有第一个字符返回一个ASCII码。具体的过程就是getchar()被调用时,程序就等着用户按键,且将用户输入的字符依次回显到屏幕,用户必须摁完规定的次数(循环语句)(即使是回车也要摁),所有的字符都会保留在键盘缓存区中(回车字符也放在缓存区中),等待后续getchar调用读取。也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到读完

4、规定的次数后(并不是读完缓冲区的字符),才等待用户按键。   getch()函数任何时候遇到回车键都能结束,而且不会回显输入的字符,但是每输入一个字符都会立即返回一个ASCII码。具体的过程就是,每摁一次键就调用一次getch(),直到遇回车结束。如果在规定次数前结束,系统论并没有存入结束符,我们要手动地在他末尾添加一个‘’字符。这个也好理解,其实getchar()就相当于是翻译型的,他连回车字符也给翻译了,然后一起存入;而getch()是解释型的,每输入一条就翻译,然后存入,遇回车字符时刚翻译完是回车,所以他就得退出了。getch函数常用于程

5、序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行。我们看一个具体的例子:IntI;chartmp[20];for(i=0;i<20;i++){tmp[i]=getch();     //关键点1//tmp[i]=getchar();//putchar('*');printf("%d=[%c]",i,tmp[i]);if(tmp[i]=='r'){tmp[i]='';    //关键点2break;}}大家先分析下上面这段代码的功能吧,这是一个最多为20位的密码输入功能,既然是

6、密码我们当然不希望他显示原字符,像linux用户验证那样什么也不显示,但有的时候为了直观一点,我们可以加入putchar(‘*’)语句,就像QQ密码在你每输入一个字符时,他就回显一个“*”号。大家不防把上面的代码敲一边,自己运行试试。接着上面的问题,为什么说读完规定的次数呢,实例中的for循环了20次,但我们在输入的时候可以输入30,50个字符,对系统来说反正是放入缓冲区,放多少都是放,只不过在读取的时候只循环了20次,所以只能多20个字符,剩下的就被抛弃了。但是如果我们只想输入10个字符,那么你就得摁剩下的10个回车键,因为getchar()输入

7、的字符被存放在键盘缓冲区中.直到用户输入足够的次数(20次)按回车后才返回。因为在20次前,回车也是当做一个普通字符存入缓存区的。也就是说,如果你的按键超过20次getch()自动结束,而getchar()没有任何提示,但在下次调用时只取前20个有效字符。如果你的按键不足20次,getch()遇到回车就退出,但是getchar()你必须按足20次后遇回车才结束,细心的朋友会发现,调用getchar()时真正输入的字符只有19个,因为系统默认把第一个字符设为‘’

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。