目录
- getchar解析
- 一、getchar的返回类型及作用机制
- 二、根据一段代码初步了解
- 三、实例(“输入密码”)进一步了解
- 1、代码达不到理想效果
- 2、输入的密码中有空格
- 总结
getchar——读取字符的函数
blockquote>
int getchar(void)
/blockquote>
返回类型为int,参数为void.
有人可能会有疑惑,getchar既然是读取字符的,为什么返回类型是int呢?
1、getchar其实返回的是字符的ASCII码值(整数)。 2、getchar在读取结束或者失败的时候,会返回EOF。blockquote>
EOF意思是end of file,本质上是-1.
/blockquote>
下面我们一起来看看下面这段代码什么意思
意思是
getchar先读取一个字符放到ch里面去,如果这个字符不等于EOF,就进入循环,打印这个字符。当getchar读到文件末尾或者结束时,它会返回一个EOF,此时结束循环。
我们来运行试一下
输入A,输出A;输入b,输出b…
当我们想要结束时,输入ctrl+Z,再按回车即可。
注意,如果上面的代码不用while循环的话,输入123,putchar()只会输出1。因为一个getchar一次只能读取一个字符。
img referrerpolicy="no-referrer"src="https://zsrimg.ikafan.com/file_images/article//4434.png" />
img referrerpolicy="no-referrer"src="https://zsrimg.ikafan.com/file_images/article//4435.jpg" />
不是直接从键盘上来读取我们的数据
。它们和键盘之间有一个区域叫
缓冲区
。
输入函数先来看缓冲区中是否有数据,如果有,它直接就拿走了,不需要从键盘输入,如果缓冲区什么都没有,则需要从键盘输入,再拿走。
img referrerpolicy="no-referrer"src="https://zsrimg.ikafan.com/file_images/article//4436.png" />
scanf("%s", password);
br />后,就是下面这行代码:
int ch = getchar();
img referrerpolicy="no-referrer"src="https://zsrimg.ikafan.com/file_images/article//4448.png" />
先把缓冲区里清空
。
img referrerpolicy="no-referrer"src="https://zsrimg.ikafan.com/file_images/article//4449.png" />
br />这又是怎么回事呢?我们一起来看看
img referrerpolicy="no-referrer"src="https://zsrimg.ikafan.com/file_images/article//44410.png" />
scanf
就来取缓冲区中的数据,当它
读到空格的时候,它就不再读了
(这是scanf的一个作用性质)。
img referrerpolicy="no-referrer"src="https://zsrimg.ikafan.com/file_images/article//44411.png" />
img referrerpolicy="no-referrer"src="https://zsrimg.ikafan.com/file_images/article//44412.png" />
需要把缓冲区中的东西先全部清走
。
用一个循环,只要没读到
,我们就一直用getchar读
。
img referrerpolicy="no-referrer"src="https://zsrimg.ikafan.com/file_images/article//44513.png" />
是我们想要的效果。
以上就是关于getchar的用法的实例解析。
到此这篇关于C语言中getchar的用法以及实例的文章就介绍到这了,更多相关C语言中getchar用法实例内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
到此这篇ifstream get函数(if(getchar()=='\\n'))的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/haskellbc/39812.html