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

  • Post author:
  • Post category:其他




前言

  • 用于执行

    输入/输出

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

    cstdio

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

    物理设备

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

    交互的抽象

    ; 所有流都具有

    相似的属性

    ,独立于它们所关联的

    物理媒体

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

    FILE 对象

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

    stdin



    stdout



    stderr

    ,它们是为使用该库的

    所有程序自动创建



    打开

    的。



一、流



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类型



版权声明:本文为weixin_45926547原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。