文件指针
文件指针在 stdio.h中定义
FILE *pf; 文件指针变量
pf是指向FILE结构的指针变量,通过pf 即可找存放某个文件信息的结构变量,然后按结构变量提供的信息找到该文件, 实施对文件的操作。
文件的打开与关闭文件在进行读写操作之前要先打开,使用完毕要关闭。
打开文件,实际上是建立文件的各种有关信息,并使文件指针指向该文件,以便进行其它操作。
关闭文件则断开指针与文件之间的联系,也就禁止再对该文件进行操作。
打开文件的函数:
FILE * fopen( const char *fname, const char *mode );
Mode(方式) 意义 :
“r” 打开一个用于读取的文本文件
“w” 创建一个用于写入的文本文件
“a” 附加到一个文本文件
“rb” 打开一个用于读取的二进制文件
“wb” 创建一个用于写入的二进制文件
“ab” 附加到一个二进制文件
“r+” 打开一个用于读/写的文本文件
“w+” 创建一个用于读/写的文本文件
“a+” 打开一个用于读/写的文本文件
“rb+” 打开一个用于读/写的二进制文件
“wb+” 创建一个用于读/写的二进制文件
“ab+” 打开一个用于读/写的二进制文件
关闭文件的函数:
int fclose( FILE *stream );
函数fclose()关闭给出的文件流, 释放已关联到流的所有缓冲区. fclose()执行成功时返回0,否则返回EOF。
文件的随机读写
根据文件指针的位置和偏移量来定位文件指针:
int fseek ( FILE * stream, long int offset, int origin );
返回文件指着相对于起始位置的偏移量:
long int ftell ( FILE * stream );
让文件指针的位置回到文件的起始位置:
void rewind ( FILE * stream );
fwrite
int fwrite( const void *buffer, size_t size, size_t count, FILE *stream );
fwrite()函数从数组buffer(缓冲区)中, 写count个大小为size(大小)的对象到stream(流)指定的流. 返回值是已写的对象的数量.
fread
int fread( void *buffer, size_t size, size_t num, FILE *stream );
函数fread()读取[num]个对象(每个对象大小为size(大小)指定的字节数),并把它们替换到由buffer(缓冲区)指定的数组. 数据来自给出的输入流. 函数的返回值是读取的内容数量.
这些是文件操作的基本用法。