c语言getchar()的用法_c语言getchar的功能

c语言getchar()的用法_c语言getchar的功能(1)语法intgetchar(void);(2)返回值getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键。…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

(1)语法

int getchar(void);

(2)返回值

getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键。

(3)作用

从标准输入流只读取一个字符(包括空格、回车、tab),读到回车符(’\n’)时退出,键盘输入的字符都存到缓冲区内,一旦键入回车,getchar就进入缓冲区读取字符,一次只返回第一个字符作为getchar函数的值,如果有循环或足够多的getchar语句,就会依次读出缓冲区内的所有字符直到’\n’.要理解这一点,之所以你输入的一系列字符被依次读出来,是因为循环的作用使得反复利用getchar在缓冲区里读取字符,而不是getchar可以读取多个字符,事实上getchar每次只能读取一个字符.如果需要取消’\n’的影响,可以用getchar()来清除,如:while((c=getchar())!=’\n’),这里getchar();只是取得了’\n’但是并没有赋给任何字符变量,所以不会有影响,相当于清除了这个字符。
例:

1 #include <stdio.h>
2   int main(){
3   char a,b;
4   a=getchar();
5   b=getchar();
6   putchar(a);
7   putchar(b);
8   }

我们输入x-回车-y-回车
  结果会是xy吗?不是的 结果是a=x b=’\n’(回车)
  当我们开始打x的时候,x在缓冲区,当我们按下回车的时候,第一个getchar()才获取到x这个值 顺利存到a里 但回车既是确定又是字符,回车’\n’它也跟着进了缓冲区,并且和x一起被释放,x到了程序里 回车(’\n’)也到了程序里,并且被第2个 getchar()获取,此时我们输入y,这时缓冲区里有一个字符 ‘y’, 然后我们又按下回车,‘y’和’\n’又一起准备被释放,由于程序里没有第3个getchar(),所以’y’和’\n’还留在缓冲区,但它们两个已经是在准备状态中,如果程序又出现一个getchar(),‘y’不需要你按回车它会直接进入到第3个getchar(),getchar()是依次获取,按先后顺序,不会先获取’\n’,而’\n’正等待着马上进入第4个getchar()。
getchar()与getch()的区别:
  用getchar()时,在键盘上按一个字符后,要按回车才能读取进去;用getch()时,要包含头文件<conio.h>,在键盘上按一个字符马上就被读取进去,不用按回车,因此可以作为“按任意键继续”的执行语句。

补充: putchar()的用法:

(1)输出:putchar函数只能用于单个字符的输出,向终端输出一个字符,且一次只能输出一个字符。

(2)格式:对于变量来说,格式为:putchar(ch);对于常量来说,格式为:putchar(‘ch’),对于转义字符来说,格式为:putchar(’\n’)。


本文章仅供学习交流用禁止用作商业用途,文中内容来水枂编辑,如需转载请告知,谢谢合作

微信公众号:zhjj0729

微博:文艺to青年

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180301.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月19日 下午12:46
下一篇 2022年10月19日 下午12:46


相关推荐

  • YOLOV5训练自己的数据集(踩坑经验之谈)

    YOLOV5训练自己的数据集(踩坑经验之谈)利用 YOLOv5 训练自己的数据集导言很惭愧 来 csdn 已经三年多了 却一直都在 白嫖 各位大神的经验与总结 这几天也一直在 csdn 里学习 YOLOv3 与 YOLOv5 训练数据集的具体步骤 几经波折终于实现了很好的效果 因此 决定利用闲暇时间 为大家写一篇 YOLOv5 训练数据集的小白手册 还望大家喜欢 有不同看法或意见欢迎在评论区指出 1 YOLOv5 的简介 本段为个人理解 有错误问题欢迎指正 严格来讲 YOLOv5 并不算是 YOLO 系列的第五代 因为并非原作者创作且暂时没有得到原作者的许可 但是 它的

    2026年3月18日
    2
  • python进阶(1)Lambda表达式「建议收藏」

    python进阶(1)Lambda表达式「建议收藏」Lambda表达式lambda表示的是匿名函数,不需要用def来声明,一句话就可以声明出一个函数语法函数名=lambda参数:返回值注意点1.函数的参数可以有多个,多个参数之间用逗号隔

    2022年7月29日
    6
  • hdu 4635 Strongly connected (tarjan)

    hdu 4635 Strongly connected (tarjan)

    2022年1月30日
    48
  • 【Python】 Python小游戏-贪吃蛇大冒险

    【Python】 Python小游戏-贪吃蛇大冒险一 前言距上次更新博客 又过去很长时间了 感觉再不更新一下 自己写博客的习惯就要废了 哈哈 从去年九月份开学之后 疫情学期期末考试开学考 实验室项目软著申请和新项目设计 课程集训等事情较多 没有很多时间 然后这个学期我到大三下学期 实验室工作交接完就准备考研 之后也没有很多时间来写博客 所以赶紧来更新一下 和大家分享一些知识和心得 希望喜欢的小伙伴可以点赞 收藏和关注 哈哈 二 贪吃蛇大冒险小游戏一 游戏简介 1 1 游戏操作及游戏规则 1 游戏开始后 通过键盘上下左右键控制贪吃蛇移动寻找食物 2

    2026年3月26日
    1
  • buildroot 树莓派3B+ WiFi

    buildroot 树莓派3B+ WiFi懂的越多,不懂的就越多。

    2022年6月25日
    34
  • pycharm21.2.3激活码_最新在线免费激活「建议收藏」

    (pycharm21.2.3激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~EC…

    2022年3月31日
    718

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号