天天看点

Clibrary | <cstdio>库的介绍(详)附代码前言

前言

  • 用于执行

    输入/输出

    操作的 C 库;
  • 输入和输出操作也可以使用 C 标准输入和输出库在 C++ (

    cstdio

    )中执行。
  • 该库使用流来操作

    物理设备

    ,例如键盘、打印机、终端或系统支持的任何其他类型的文件。
  • 流是一种以统一方式与这些

    交互的抽象

    ; 所有流都具有

    相似的属性

    ,独立于它们所关联的

    物理媒体

    的各个特性。
  • 流在 cstdio 库中作为指向

    FILE 对象

    的指针进行处理。 指向 FILE 对象的指针唯一标识一个流,并在涉及该流的操作中用作参数。
  • 还存在三个标准流:

    stdin

    stdout

    stderr

    ,它们是为使用该库的

    所有程序自动创建

    打开

    的。

文章目录

  • 前言
    • 一、流
      • 1、属性
        • 1.1 读/写访问
        • 1.2 文本或二进制
        • 1.3 缓冲
        • 1.4 取向
      • 2、指标
        • 2.1 错误指示器
        • 2.2 文件尾指示器
        • 位置指示器
      • 3、功能
        • [3.1 文件处理](https://blog.csdn.net/weixin_45926547/article/details/120392327)
        • [3.2 文件访问](https://blog.csdn.net/weixin_45926547/article/details/120394258)
        • 3.2 格式化输入/输出
        • 3.3 字符输入/输出
        • 3.4 直接输入/输出
        • 3.5 错误处理
        • 3.6 宏
        • 3.7类型

一、流

1、属性

1.1 读/写访问

指定流是否对它们关联的物理媒体

具有读或写访问(或两者都有)

1.2 文本或二进制

  • 文本流即一组文本行,每一行以

    换行符

    结尾。 根据应用

    程序运行

    的环境,文本流可能会发生一些

    字符转换

    ,以使某些

    特殊字符适应环境

    的文本文件规范。
  • 二进制流是从

    物理媒体

    写入或读取的字符序列,

    不需要转换

    ,与读或写到流的字符有

    一一对应

    关系。

1.3 缓冲

缓冲区是一个

内存块

,数据在物理地

读或写

到相关的文件或设备之

在其中积累。 流可以被

完全缓冲

行缓冲

不缓冲

  • 完全缓冲的流中,当缓冲区

    被填满时

    读取/写入数据;
  • 行缓冲流中,当遇到

    新行字符

    时读取/写入数据;
  • 未缓冲流中,字符将

    尽可能快

    地读取/写入。

1.4 取向

在打开时,

流没有方向

。 一旦对它们

执行

输入/输出操作,它们就变成

面向字节

的或

面向广泛

的,这取决于所执行的操作(通常,在

<cstdio>

中定义的函数是

面向字节

的,而在

<cwchar>

中定义的函数是

面向广泛

的)。

2、指标

2.1 错误指示器

当与流相关的操作发生

错误

时设置此指示器。 这个指示器可以用

ferror

函数来检查,也可以通过调用

clearerr、freopen或rewind

来重置。 `

2.2 文件尾指示器

对流执行的最后一次读或写操作到达文件结束位置。 用

feof

函数检查,也可以通过调用

clearerr

freopen

或调用任何重新定位函数(

rewind

,

fseek

fsetpos

)来重置。 一般常用

feof

fseek

位置指示器

它是每个流的

内部指针

,指向

下一次I/O操作

中要读或写的

下一个字

符。 它的值可以通过

ftell

fgetpos

函数获得,常用

fseek

来改变。

3、功能

3.1 文件处理

3.2 文件访问

3.2 格式化输入/输出

3.3 字符输入/输出

3.4 直接输入/输出

3.5 错误处理

3.6 宏

3.7类型