c语言getchar的用法.docx
《c语言getchar的用法.docx》由会员分享,可在线阅读,更多相关《c语言getchar的用法.docx(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、c语言getchar的用法c语言getchar的用法很多初学者都习惯用char型变量接收getchar、getc,fgetc等函数的返回值,其实这么做是不对的,并且隐含着足以致命的错误。getchar()最典型的程序也就几行代码罢了。下面我们来看看c语言getchar的用法。一、getchar的两点总结:1.getchar是以行为单位进行存取的。当用getchar进行输入时,假如输入的第一个字符为有效字符(即输入是文件结束符EOF,Windows下为组合键Ctrl+Z,Unix/Linux下为组合键Ctrl+D),那么只要当最后一个输入字符为换行符n(可以以是文件结束符EOF,EOF将在后面讨
2、论)时,getchar才会停止执行,整个程序将会往下执行。譬如下面程序段:while(c=getchar()!=EOF)putchar(c);执行程序,输入:abc,然后回车。则程序就会去执行puchar(c),然后输出abc,这个地方不要忘了,系统输出的还有一个回车。然后能够继续输入,再次碰到换行符的时候,程序又会把那一行的输入的字符输出在终端上。对于getchar,肯定很多初学的朋友会问,getchar不是以字符为单位读取的吗?那么,既然我输入了第一个字符a,肯定知足while循环(c=getchar()!=EOF的条件阿,那么应该执行putchar(c)在终端输出一个字符a。不错,我在用
3、getchar的时候也是一直这么想的,但是程序就偏偏不着样执行,而是必需读到一个换行符或者文件结束符EOF才进行一次输出。对这个问题的一个解释是,在大师编写C的时候,当时并没有所谓终端输入的概念,所有的输入实际上都是根据文件进行读取的,文件中一般都是以行为单位的。因此,只要碰到换行符,那么程序会以为输入结束,然后采取执行程序的其他部分。同时,输入是根据文件的方式存取的,那么要结束一个文件的输入就需用到EOF(EnfOfFile).这也就是为什么getchar结束输入退出时要用EOF的原因。2.getchar()的返回值一般情况下是字符,但可以能是负值,即返回EOF。这里要强调的一点就是,get
4、char函数通常返回终端所输入的字符,这些字符系统中对应的ASCII值都是非负的。因而,很多时候,我们会写这样的两行代码:charc;c=getchar();这样就很有可能出现问题。由于getchar函数除了返回终端输入的字符外,在碰到Ctrl+D(Linux下)即文件结束符EOF时,getchar()的返回EOF,这个EOF在函数库里一般定义为-1。因而,在这种情况下,getchar函数返回一个负值,把一个负值赋给一个char型的变量是不正确的。为了能够让所定义的变量能够包含getchar函数返回的所有可能的值,正确的定义方法如下(KRC中十分提到了这个问题):intc;c=getchar(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 getchar 用法
限制150内