流
什么是流?
C里的文件流,C里标准文件方式把文件当作流来看,也就是有一个内部缓冲buffer,每次以标准方式打开文件时,读入时先将数据读到这个缓冲区里,写的时候也是先写入缓冲区里。
流分为两种:文本流和二进制流
1.文本流在不同的系统中实现不太相同。
2.二进制流中的字节完全是安照程序编写的形式写入到文件和设备中,而且完全根据他们从文件或者设备读取的方式读入到程序。
##文件
说起文件,很多人就会想到在stdio.h里面定义了一个FILE的结构,但是在这里,我要说明的是,千万不要把它和磁盘上的文件混淆,我之前就总是认为FILE嘛,不就是个文件嘛!再次声明,绝对不是!!!
FILE是一种数据结构,用于访问一个流,如果你激活了几个流,那么每个流都会对应一个FILE结构。
对于每一个ANSI C程序而言,至少打开三个流:标准输入(stdin)、标准输出(stdout)、标准错误(stderr),它们都是指向FILE结构的指针。
注:标准输入就是键盘设备输入进去 标准输出就是屏幕终端显示的 ##常见的I/O常量 最常见的也是我们所熟知的必定是EOF了,它是文件结束的标志,表示文件到了结尾。 此外还有一些其他的I/O常量: FOPEN_MAX 表示一个程序最多打开文件数。 FILENAME_MAX表示文件名称的最大长度。 ## I/O函数 ###### 文件I/O的一般概况:
1.程序必须给每个文件声明一个指针变量,这个变量的类型为FILE*,当它处于活动状态时为流所用。
2.流通过fopen函数打开,打开的时候必须指定需要访问的文件或者设备以及访问方式。例如:
`FILE* fopen(const char* filename,const char*mode)`
3.根据需要对文件进行读取和写入。
4.fclose函数可以关闭流,防止与它相关的文件再次被访问,保证存储在缓冲区的数据被正确的写入到文件中。例如:
`fclose(FILE* steam)` ###### I