getchar()作用
就目前而言,我所遇到的getchar()有两处
(1)在程序末尾加getchar(),用来让程序不会立即退出,跟system(“pause”);是一样的功能.可能你在写完代码后用ctrl + F5运行时,不加getchar();程序也不会立即退出,这是当然的,编译器有这个功能.不过如果你从debug文件夹下用.exe文件打开代码,没有getchar()或system(“pause”);程序会闪一下就消失,可能就零点几秒.getchar();让程序停留在这一步,直到它从键盘接收到消息.
(2)在两次连续从键盘输入语句中间.这个就有点意思了,下面我用一段代码演示
这段代码里getchar()被我注释掉了,看一下运行结果
看出什么了吗?下面那句gets(str2)直接执行了,我还没有输入字符,它就执行结束了.
看一下加了getchar()的程序
看到差异了吗?这里gets(str2)直接没有执行,下面我键入命令
这才是我想要的运行结果.
那么为什么会出现这种情况呢,我自己也上网查了些许资料,以下为本人总结:
当从键盘输入时,键盘输入的字符会保存在缓冲区,当键盘按下enter建时,缓冲区被清空,缓冲区的内容被写入目标内,比如我这段代码的目标就是str,即我从键盘输入的list被写入str数组里,这个时候缓冲区还有什么呢?准确的说,这时缓冲区里还有一个字符’enter’,
如果不加getchar(),缓冲区会把’enter’这个字符写进gets(str2),这时程序就会像上面那样,直接结束.而加了getchar();它会吃了缓冲区里的’enter’字符,这时候缓冲区才是真的什么都没有,gets(str2)等待缓冲区写入内容,这时程序才会像下面那样执行
————————————————
版权声明:本文为CSDN博主「痕忆丶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37059136/article/details/80280991
getchar()作用相关推荐
- c语言get()的作用,c语言get函数的用法有哪些
C语言中gets从标准输入设备读字符串函数,可以无限读取,不会判断上限,今天学习啦小编在这里为大家介绍C语言get函数的用法,欢迎大家阅读! c语言get函数的用法:int getc(FILE *st ...
- 实现DFS之“骨头的诱惑”
度优先搜索(DFS)是一个递归过程,有回退过程. 下面是一道OJ上的题目,借此来实现下DFS~ 题目来源: Zhejiang Provincial Programming Contest 2004,Z ...
- C实现的一个简单的学生成绩管理系统
/*学生成绩管理系统 */ //#include "StdAfx.h" #include "stdio.h" /*标准输入输出函数库*/ #include ...
- scanf()中的%c 不能正常输入的问题
#include <stdio.h> int main() {char a;int b;scanf("%d",&b);scanf("%c", ...
- (数据结构)树的双亲表示法
树的双亲表示法 此前写过二叉树的顺序存储和链式存储,此篇文章将介绍普通树是如何存储的... 通常,存储具有普通树结构数据的方法有 3 种: 双亲表示法 孩子表示法 孩子兄弟表示法 而本篇文章将优先介绍 ...
- C语言get函数汇总
转载自新浪博客:http://blog.sina.com.cn/s/blog_590be5290100kaeg.html 1.int getc(FILE *stream); 从指定输入流 stream ...
- (数据结构)树的Child表示法
树的孩子表示法 此前介绍过用双亲表示法存储普通树,本篇文章将讲解另一种存储普通树的方法... 另一种方法是孩子表示法!!! 孩子表示法存储普通树采用的是:顺序表和链表的组合结构 其存储过程是:从树的根 ...
- C语言期末集训3(大一,超基础,小猫猫大课堂配套练习)——循环结构
更新不易,麻烦多多点赞,欢迎你的提问,感谢你的转发, 最后的最后,关注我,关注我,关注我,你会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要. 大一上程序设计期末复习,超基础,小猫猫大课堂配套练 ...
- getchar()函数的作用
1.清除回车符 2.查看程序中间结果 3.一次向缓存读入一个字符 4.getchar()是缓存输入函数,从键盘输入多个字符时: 将所有字符保存在键盘缓存区,直到遇到回车 符,getchar()函数才从 ...
最新文章
- mysql using filesort_mysql using filesort Using temporary
- 如果服务器开机显示NObootable,电脑不能开机提示No bootable device怎么办?
- oracle dbwr trace文件,ORA-01157: cannot identify/lock data file 19 - see DBWR trace file问题处理...
- mysql的cpu飙升到500_[MySQLCPU]线上飙升800%,load达到12的解决过程
- 【总结】大规模数据(300万条)测试时,需要注意的问题。
- hive sql 报错后继续执行_Hive迁移Presto在OPPO的实践
- Tensorflow API解析 -目录
- 简洁明了:基于eova平台,对Vue 页面中的自定义Button按钮进行用户权限控制处理
- Snagit 10 截图 虚拟打印机 【下载|注册码】
- 基于SSM实现的新闻发布系统【附源码】(毕设)
- 生物信息常用网站(数据库)
- 微博除夕日活达1.34亿 借阿里云化解流量洪峰
- 玩转微信个性化头像,一键加V/加字/加图片
- 我的第一篇随笔-------吹起启程之风
- 推荐一个美中不失优雅的博客网主页(素材参考---麋鹿鲁哟)
- linux 命令 tr 详解
- [计算几何] [BZOJ4246] 两个人的星座
- 让未来更近,三星The New Bixby与IoT打造智能物联
- 使用百度UNIT搭建智能对话系统_订火车票实例
- 植树节汇报之后的突发奇想