c++中的IO流

C++ 中的IO流
c语言中的输入输出

说到c++就不能不提c语言,在c语言中,依靠输入输出函数进行IO操作,在c语言中我们常用的函数有

scanf printf
pusts gets putc getc
getchar putchar
fwrite fread
...

这些IO函数通过一些缓冲区在设备和代码之间进行数据的输入和输出。缓冲区的读写速度较快,设备和代码都能很快的从其中复制数据和写入数据,从而完成IO操作。

      --->   输入缓冲区  --->
设备                            代码
      <---   输出缓冲区  <---

缓冲区的缓冲方式一般分为三种:

  • 全缓冲:当缓冲区被写满时才进行刷新
  • 行缓冲:当缓冲区遇到换行符时才进行刷新
  • 无缓冲:写入的数据会立即刷新出来
什么是流

在向缓冲区中写入的和读出的数据我们称之为流,流我们可以认为是一个方向向另一个方向流动的数据流,是连续性的,具有方向性的。在c语言中流都是基于缓冲区实现的,他们的区别仅在于输出的方向,和对数据的操作方式不同。

流可以分为两种:

  • 文本流:在缓冲区中读出和写入时是基于ASCII或者Unicode字符编码的。写入缓冲区的最大长度规定为254个字符。在文本文件结束时规定以一个回车符和换行符结尾,在写入缓冲区时,会将\n转换为回车换行符,在从缓冲区中读取出数据时,就会将回车换行符转换为换行符。
  • 二进制流:二进制的流在向缓冲区中写入或读出文件时,不进行字符的转换,直接从设备或文件中读取,在这个过程中不发生任何改变,原先是什么样子,读取之后还是什么样子,它是基于二进制数字啊的。

在c语言中,每个运行时系统必须提供三个标准流 标准输入stdin 标准输出stdout 标准错误stderr
stdin为缺省时的输入设备,一般为键盘, stdout为缺省时的输出设备,一般对应屏幕,stderr为输出错误信息的,一般也对应到屏幕。当然这些都是默认缺省时的,我们可以自行通过重定向来改版输出输入的方向。

c+&
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值