头文件(stdio.h)
执行输入/输出操作的C++库
输入与输出操作在C++中也可以通过使用C标准输入输出库(cstdio,在C语言中为stdio.h)实现。该库使用所谓的“流“操作物理设备,如键盘、打印机、终端或系统支持的其它类型文件。流是与这些物理设备以统一方式交互的抽象概念。所有的流都具有独立于它们相关联的物理设备个体特性的相似属性。
流在cstdio库中以指向FILE对象的指向方式操作。一个指向FILE对象的指针唯一表示一个流,并且在设计该流的操作中作为参数使用。
存在三种标准流:stdin、stdout与stderr,它们自动为所有使用该库的程序公开创建。
流属性
流拥有一些属性,定义了哪些函数可以作用于它们与如何对待从它们输入或输出的数据。这些属性的绝大多数在通过fopen函数将该流与文件关联(opened)的时刻就已经定义了:
读/写访问
指定该流是否具有它们关联的物理媒体的读或写访问权限(或两者都有)。
文本/二进制
文本流被认为是表示一些列文本行,每一行以换行符结束。根据程序运行环境的不同,为了使一些特殊字符适应文本文件环境的特殊性,一些字符转换也许会发生。另一方面,二进制流是不经过任何转换写入物理媒介或从物理媒介读出的一系列字符,它们与从流中读出或写入流的字符一一对应。
缓存
混村是一个内存块,数据在从关联的文件或设备中读入或写入之前累计的地方。流可以是全缓存、行缓存或不缓存。对于全缓存流,数据当该流满了时读取/写入,对于行缓存流,发生在遇到换行符时,对于不缓存流字符立即被读取/写入。
定向
在打开时,流是没有定向的。当输入/输出操作作用在它们身上时