当前位置: 首页 > wzjs >正文

免费网站建设专业服务平台公司网站做首页大图

免费网站建设专业服务平台,公司网站做首页大图,iis 网站无法访问,.net做网站教程输入输出(IO)是指用户和程序交互的方式,输入是指获取用户从键盘上输入的数据,输出是指将数据显示到屏幕上 缓冲区 缓冲区是内存空间的一部分,在内存中预留了一部分空间,用来暂时存储输入输出的数据 为什么会有缓冲区这个东西&am…

输入输出(IO)是指用户和程序交互的方式,输入是指获取用户从键盘上输入的数据,输出是指将数据显示到屏幕上

缓冲区

缓冲区是内存空间的一部分,在内存中预留了一部分空间,用来暂时存储输入输出的数据

为什么会有缓冲区这个东西?

硬件速度远低于CPU,输入设备的响应时间通常是毫秒级别,而CPU处理指令的速度是纳秒级别

如果每次I/O操作都等待硬件完成,CPU会长时间空闲,导致资源浪费。若程序直接与硬件交互,每次I/O操作都会导致程序阻塞等待。有了缓冲区后,函数printf和scanf会将数据写入缓冲区,程序会继续执行下去,无需等待I/O口完成操作。根据缓冲区的缓冲策略,取出数据并刷新缓冲区

这样一来缓冲区既协同了硬件与CPU之间的速度,又提高了CPU 的效率

使用printf完整的输出流程

数据-》用户空间缓冲区-》缓冲区刷新-》标准库调用系统函数write()-》内核缓冲区-》操作系统内核调用显卡驱动设备-》驱动程序将数据写入显卡显存-》从显卡读取数据 刷新屏幕显示内容

缓冲策略

根据缓冲区刷新的时机可以将缓冲区分为全缓冲、行缓冲、不带缓冲

全缓冲

这种情况下,只有当数据填满缓冲区才能进行实际的输入输出操作,缓冲区的大小都有限制的,比如4K 、2K 、1K,数据量达到最大值才能从缓冲区取出数据并刷新

行缓冲

这种情况下,在输入输出的过程中只有遇到换行符才能从缓冲区取出数据,scanf就是带有行缓冲的

不带缓冲

这种情况下,对于输入输出的数据没有缓冲的地方,直接进行输入输出的操作。windows下的printf

总结:对于输入操作,缓冲区的存在是必要的

从缓冲区的角度分析输入函数scanf()的几个现象

#include <stdio.h>
int main()
{int a = 0, b = 0, c = 1, d = 2;scanf("%d", &a);  //输入整数并赋值给变量ascanf("%d", &b);  //输入整数并赋值给变量bprintf("a+b=%d\n", a+b);  //计算a+b的值并输出scanf("%d %d", &c, &d);  //输入两个整数并分别赋值给c、dprintf("c*d=%d\n", c*d);  //计算c*d的值并输出return 0;
}

从键盘上正确输入

12↙
60↙
a+b=72
10 23↙
c*d=230

连续输入

现在我们改变输入方式,四个变量的值连续输入,结果也能正确。说明连续输入的数据存放在缓冲区,scanf连续读取给对应的变量

12 60 10 23↙
a+b=72
c*d=230

多输入数据

结果也是正确

12 60 10 23 99↙
a+b=72
c*d=230

少输入数据

输入3个整数,前两个scanf把前两个整数读取了,执行到第三个scanf时,缺少一个数据,所以我们还是要继续输入,

12 60 10↙
a+b=72
23↙
c*d=230

数据类型不符合

前两个数据读取正常。执行到第三个scanf时,要求输入两个十进制整数,a10不符合,所以只能读取失败。说明scanf遇到不符合类型的数据,并不会等待用户输入

12 60 a10
a+b=72
c*d=2

总结:遇到scanf()函数时,程序会先检查输入缓冲区是否有数据。

  • 如果没有,就等待用户输入。用户输入的数据都会暂时保存到缓冲区(包括\n和空格)
  • 如果有数据,要么匹配成功,要么读取失败

http://www.dtcms.com/wzjs/788984.html

相关文章:

  • 源码网站广告设计公司装修案例
  • 珠海市住房和城乡建设部网站比较好的网页制作公司
  • 网站建设公司2018-10-1军队房地产与建设工程法律实务在哪个网站可以购买
  • 网站用户 分析郑州百度seo
  • 外贸建站推广工作总结做网站一般需要多少钱
  • 网站的开发流程分哪几步单位门户网站建设存在问题
  • 你建立的网站使用了那些营销方法国内 wordpress主题
  • 易讯网站建设大型网站技术架构 pdf
  • 做的网站每年都要收费吗优设网网址
  • 乐清网站建设服务实体店100个营销策略
  • 搭建门户网站网站开发支持上传gif
  • 富阳网站建设报价vue商城模板
  • 建设建设银行甘肃分行网站长沙自助建站平台
  • 怎么做代理人金沙网站上海企业网站设计制作
  • 用dw如何做网站链接山西网站建设免费咨询
  • 遵义网站建设网帮你汽车网站建设策划方案
  • 做网站被骗预付款怎么办做家教的正规网站
  • 七台河建网站做网站怎样做才有百度快照
  • wordpress局域网建站网站内链分析
  • 网站建设项目概要设计方案网站建设 模版选择中心
  • redhat7做网站过程网站制作哪个好薇
  • 服务器可以做网站吗杭州手机软件开发
  • 查建设标准网站mianf网站
  • 自己架设的传奇怎么做网站电子商务网站的建设费用案例
  • 重庆工程建设信息网站软件定制官网
  • 河南省建协网官方网站洛龙区网站制作建设费用
  • 如何实现网站开发手机验证码在国外做网站推广
  • 台州网站建站新1站网站建设
  • 花店网站模板免费下载上传网站代码
  • 外贸企业网站建设方案关掉自己做的网站