缓冲区问题 输入缓冲区的管理方式:世界快播
缓冲区:
输入缓冲区
键盘—》键盘缓冲区—》输入缓冲区—》程序(scanf函数)
(资料图)
我们在键盘上输入的任何东西,会先进入输入缓冲区区域,然后程序从输入缓冲区里把数据一个一个读出来。
输入缓冲区的管理方式:
先进入的数字会被先读出来(输入缓冲区里把前面的数字读走了,才能读后面的数字)
scanf就是从输入缓冲区里拿数字,如果输入缓冲区的内容和scanf指定的格式类型不一样,它就不动,不会把输入缓冲区里的任何内容转移走。所以你用scanf读一个%d,输入缓冲区输入一个[a 10],用scanf读取一个整数的时候,它读出来的a发现不是一个整数,它又把这个a放回去了。下回再读,还是读的这个a。a始终堵在缓冲区内,后面的数据10读不到。为了解决这个问题,我们在每次读取一个数据后,把输入缓冲区里的数据全清理掉,我不管里面有什么,我这次读完了过后也不管这次是读到还是没读到,反正我这次读完了过后把输入缓冲区全部清理掉,这样的话我保证你下一次读的时候是一个新的开始。每次读完一个数据后,把输入缓冲区里的数据全部清理掉,保证下一次再读的时候一定是一个新的开始,这样就不会因为前一次的错误导致后一次出问题。【清理输入缓冲区的目的:前面的输入出错了,保证不会影响后面的输入】
每次读完一个数据后清理输入缓冲区,保证前面的输入出错了,不会影响后面的输入
scanf("%*[^\n]");
scanf("%*c");
输入缓冲区有这样的一个特点:只有当其中的数据读走的时候,才会清除这个数据。
scanf(数据类型)和缓冲区中的数据类型不一致的时候,便无法读走数据,可能会导致死循环。
解决上面问题的办法:
scanf("%*[^\n]");//*忽略读到的内容,[^\n]任何非\n的字符;将\n之前的所有字符读走
scanf("%*c");//从缓冲区读取一个字符忽略掉
补充:scanf调用失败(主要原因:类型不匹配)返回垃圾值。
char ch;
//下面两行可以完全请空缓冲区中的一行内容
scanf("%*[^\n]");//先将换行符之前的所有内容都清掉
scanf("%c", &ch);//再将\n从输入缓冲区读走
scanf的运行原理
scanf如果发现输入缓冲区中没有东西,就启动录入scanf发现输入缓冲区中有\n,那么他就会去输入缓冲区取值如果发现是自己的菜就会取走放到自己盘子里如果不是自己的菜,就会自己回去了
//检查输入格式是否正确
#include
int main() {
int num=0;//初始化清零
printf("请输入一个数字:");
while (!scanf("%d",&num)) {
scanf("%*[^\n]");
scanf("%*c");
printf("输入格式错误!\n请输入一个数字:");
}
printf("输入正确!num=%d\n",num);
return 0;
}
每次使用scanf函数读数据后都需要清理输入缓冲区!
输出缓冲区:
程序(printf函数)->输出缓冲区->屏幕
程序的输出可以到达屏幕的条件
输出缓冲区内容显示在屏幕上的条件(至少满足一个):
遇到\n程序结束(函数结束)输出缓冲区满了使用fflush(stdout)强制刷新(人工刷新)
举例:
转载于:https://www.cnblogs.com/bossren/p/6369330.html
标签:
相关推荐:
最新新闻:
- 利用活跃变量分析来去掉vmp的大部分垃圾指令 活跃性计算的方法
- 乱码问题怎么解决?Ubuntu9.04上看电影加载中文字幕乱码问题-速递
- 天天时讯:5个优秀的国产开源低代码开发平台推荐 低代码开发平台:J2Pa、cgBoot、华炎魔方
- 百度云资源分享 百度云干货资源
- 焦点播报:Windows下【AxureRP】原型设计工具破解码与安装包 安装步骤
- 耶鲁大学耗时5年的研究成果 左脑与右脑的神奇功能研究|今日报
- 全球观点:读书笔记-袁腾飞讲高效学习法 高效能学生的七大法宝
- JavaEE---Servlet入门教程 JavaEE操作步骤_天天即时看
- 天天时讯:FASTQ格式是什么?FASTQ格式详情
- 环球快资讯丨springboot&日志&aop管理日志 定时任务、异步调用、读取配置文件
- 环球新消息丨TSLAM9是什么?中心差分卡尔曼滤波
- 缓冲区问题 输入缓冲区的管理方式:世界快播
- 全球观察:ffmpeg源码分析:结构体成员管理系统-AVOption
- 天天热头条丨清华2019最新AI发展报告出炉:13大领域一文看懂
- 紫光电子平板电脑怎么样?紫光电子平板电脑如何刷机? 每日热门
- 天天信息:win7系统如何关闭系统默认共享文件夹?关闭系统默认共享文件夹方法
- 嵩天老师的零基础Python笔记 详情介绍
- 如何清除AcadDoc.lsp病毒?AcadDoc.lsp病毒清理步骤
- 文本显示器的价格是多少?文本显示器的优势|全球滚动
- linux安装jdk8怎么装?手把手教你安装单机版Hadoop3.2.1
- 饮水机什么牌子质量好?饮水机品牌推荐-全球观察
- 网络基础知识有哪些?网络基础知识大全 世界热闻
- 小学生电脑学习机有哪些?读书郎学生电脑主要功能
- 【时快讯】韩国泛泰手机怎么样?韩国泛泰手机参数配置如何?
- 环球快资讯丨为什么黑茶有茶梗?关于茶梗你知道多少?
- 松下变频器怎么使用?松下变频器说明书详解-全球微动态
- 二手电视机有哪些分类?二手电视机分类介绍-热消息
- 如何判断一个函数是奇函数还是偶函数?判断技巧|当前速看
- 【当前热闻】一加手机怎么开启手电筒?一加手机开启手电筒操作步骤
- 2021庆阳一中高考成绩查询 2020年庆阳市多所中学高考喜报
- Win7安装IE10或IE11怎么操作?离线安装注意问题 全球热点评
- 分布式光纤测温系统 性能指标优势
- 2021江西省高考的成绩怎么查询?江西省教育考试院高考成绩查询系统入口2021
- Oracle database 10g官方版性能拓展_世界观焦点
- 飞利浦吸尘器怎么样?维修中常见的问题 世界快播报
- 删除文件提示正在被另一程序使用怎么办?解决方法
- QGIS|构建选址模型 模型需求分析:天天消息
- 【世界时快讯】什么是umd漫画制? umd漫画制作工具详情介绍
- 视频在html不能播放器怎么办?网页播放器打不开的解决方法
- 德国坦克声卡怎么样?德国坦克声卡质量好不好?|每日快讯
- CAD怎么建立三维模型? CAD的建模方法|全球播资讯
- d3dx9_43.dll是什么丢失了怎么办?解决办法 天天快讯
- 联想轻薄笔记本怎么样?联想ThinkPad E325多少钱?:环球热资讯
- 2021年临颖一高高考成绩查询 河南漯河名列前茅的4所高中 热头条
- 小飞人熨斗怎样?小飞人熨斗特点介绍 讯息
- Module简介 module的编写方法
- 今日热议:RCLAMP0524P超低电容TVS二极管阵列 DFN-10L封装教程
- sin函数对照表怎么看?三角函数值对照表
- QT部署YOLOV5 pyqt5搭建YOLOV5的检测平台
- 微信公众号的消息免打扰怎么打开?微信公众号的消息免打扰打开方法 环球今亮点
- 2021庆阳一中高考成绩查询 2020年庆阳市多所中学高考喜报
- Win7安装IE10或IE11怎么操作?离线安装注意问题 全球热点评
- 视频在html不能播放器怎么办?网页播放器打不开的解决方法
- QGIS|构建选址模型 模型需求分析:天天消息
- 微速讯:Makefile宏控是什么?宏控与systemProperty取名对应
- QT部署YOLOV5 pyqt5搭建YOLOV5的检测平台
- 如何关闭电脑右下角游戏广告弹窗?电脑右下角游戏广告弹窗关闭方法
- 怎么批量删除电脑桌面文件图标?批量删除电脑桌面文件图标操作步骤
- diskgenius怎么恢复数据和分区?diskgeniu恢复数据和分区方法
- win7如何安装HP打印机?win7安装HP打印机步骤
- 如何清除win10系统所有搜索历史记录?win10系统所有搜索历史记录操作步骤
- 无线路由器可连接网络的距离是多少?无线路由器可连接网络的距离介绍
- 如何找到电脑中的本地连接?电脑中的本地连接查找方法
- ctfmon.exe是什么进程?ctfmon.exe是否可以下载替换?
- 怎么将swf格式文件转为mp3格式?swf格式文件转为mp3格式方法
- 打开EXCEL时无法找到startup.xls文件怎么解决?打开EXCEL时无法找到startup.xls文件的解决方法
- 音频拨号和脉冲拨号的区别是什么?音频拨号和脉冲拨号的区别介绍
- 怎么更改鼠标指针图案?鼠标指针图案更改方法
- 笔记本电脑键盘输入错乱怎么办?笔记本电脑键盘输入错乱解决方法
- TeamViewer怎么使用?TeamViewer使用方法教程
- 电脑主板供电接口有什么不同?电脑主板供电接口介绍
- 硬盘如何安装系统?硬盘安装系统教程
- 笔记本电脑怎么外接直流电源?笔记本电脑外接直流电源连接方法
- 怎么打开nh文件?nh文件是什么?
- 暴风转码怎么用?暴风转码使用方法
- 蓝屏提示错误代码0x000000c2怎么办?Win10蓝屏提示错误代码0x000000c2的解决方法
- “强监管、一刀切”!香港期货业恐“变天”,经纪商:可操作性不强......影响几何? 环球热推荐
- 韩厂压力山大:显示屏看中国的时代来了 当前通讯
- 《星球大战绝地:幸存者》将拥有5种光剑形态 用以针对不同敌人
- 最新快讯!《战神4》Mod搞笑视频 姆巴佩和梅西一决高下
- 菲尔·斯宾塞分享自己的2022年游戏报告 《吸血鬼幸存者》游玩时长最多
- 观焦点:P社宣布 将计划对部分地区的游戏售价进行调整
- 世界看热讯:Acer推出新技术 显示器和笔记本可实现裸眼立体3D效果
- 《刺客信条:英灵殿》联动《怪物猎人:世界》 惨爪龙风飘龙装备皮肤正式上线_最新消息
- 处理器/系统百分百中国自主 国产PC新标杆 内嵌8核处理器