流与缓冲区的理解

流的概念

  • 流是一个 过程 ,一个 动态 的概念

(可以把流想象成水在水管中流动的过程,想象成商品快递运送的过程。cin和cout就是 执行 流这个过程的人)

  • 流 负责 操作 缓冲区,输入输出流是 操作实现
    • 对于输入,cin负责把输入缓冲区中的内容传递给程序;
    • 对于输出,cout负责把输出缓冲区中的内容传递给屏幕。

(cin和cout把缓冲区的数据变成流,然后 搬运 到相应的目的地。cin和cout就是个 搬运工搬运的过程 就是流)


  • 程序流源流目标 之间的桥梁
    • 使得C++程序可以以 相同的方式 对待来自 键盘 的输入和来自 文件 的输入
    • C++程序只检查 字节流 ,而不需要知道字节来自何方
    • C++程序处理输出的方式将独立于其去向
  • 输入流需要两个连接,每端各一个
    • 文件端连接 提供了流的来源
    • 程序端连接 将流的流出部分转储到程序中
    • (文件端连接可以是文件,也可以是设备)
    • 对输出的管理包括将 输出流 连接到 程序 以及将 输出目标 关联起来

缓冲区的概念

  • 标准库 提供缓冲是为了减少对read和write的调用(能更高效地处理输入和输出)

  • 用作中介的内存块,将信息从设备传输到程序或从程序传输给设备的 临时存储工具

参考资料

C/C++中关于输入输出缓冲区和流的概念理解
c语言库函数
c++文件和流
c++标准输入输出流
C++ STL 基础及应用(4) 输出输出流
红黑联盟 https://www.2cto.com/kf/ware/cpp/index.html

转载于:https://www.cnblogs.com/wangzhiyi/p/9491969.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值