栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言 getchar()函数使用注意点——回车字符的读取

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言 getchar()函数使用注意点——回车字符的读取

1.定义:

getchar是读入函数的一种。它从标准输入里读取下一个字符,相当于getc(stdin)。返回类型为int型,为用户输入的ASCII码或EOF。即:getchar()函数实际上是int getchar(void),因此,它会返回 ASCII代码,所以只要是ASCII码表里有的字符它都能读取出来。

2.使用方法:

程序在调用 getchar的时候等待着用户的按键。用户所输入的字符储存于键盘缓冲区。直至用户按回车键为止(回车字符也放在缓冲区中)。在用户输入“回车”后,getchar就会从标准输入数据流中读取一个字符。getchar函数的返回值是用户输入的字符的ASCII码,若文件结尾(End-Of-File)则回-1(EOF),且将用户输入的字符显示。如果用户在按下回车键前,输入多个字符,则会将其它字符留在键盘的缓冲区域,等待后续getchar调用读取。这意味着,接下来的 getchar调用不会等待用户按键,而直接读取缓冲区中的字符(注意键入后的回车键也算一个字符,输出时直接换行),直到缓冲区中的字符读完后,才等待用户按键。

3.注意点: 例:

        

        出现以上的错误便是因为回车键也算一个字符,题目中在前面先调用scanf()函数读取字符后再调用getchar()函数读取字符,因为想要scanf()调用必须回车才能执行,就多了一个回车在缓存区中且因为回车也算一个字符,所以getchar()就自动读取了缓冲区中的剩余字符(n)。建议清空缓存区再使用getchar(),不然getchar()会造成错误,把前面回车也读取出来。

正确代码: 

4.总结:

        大多数初学者在接触getchar()时,一般情况下出错的就是对于回车字符的读取。因此调用getchar函数前,要注意将输入缓冲区内清空,这样会减少很多不必要的麻烦。此外也可以使用scanf()替代getchar(),scanf()不必担心回车字符的困扰——只有在格式化为"%c"时会读取回车符。但也有其缺点,就是无法读取含空格等字符的字符串。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1018248.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号