1.fopen函数用来打开一个文件
对磁盘文件的操作必须“先打开,后读写,再关闭”,“打开”文件的含义:以某种方式从磁盘上查找指定的文件或创建一个新文件。
头文件:#include <stdio.h>
函数原型:FILE * fopen(const char * path, const char * mode)
函数形参:path --- 包含欲打开的文件路径及文件名
mode --- 代表文件流形态
mode 有下列几种形态字符串:
r --- 以只读方式打开文件,该文件必须存在
r+ --- 以读/写方式打开文件,该文件必须存在
w --- 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件
w+ --- 打开可读写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件
a --- 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留
a+ --- 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留
函数功能:用指针的模式打开一个文件
函数返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回 NULL,并把错误代码存在 errno 中。
2.fread函数以二进制形式读取文件中的数据
头文件:#include <stdio.h>
函数原型:int fread(void *buffer, unsigned size, unsigned count, FILE *fp)
函数形参:buffer --- 这是一个void型指针,指出要将读入数据存放在其中的存储区首地址
size --- 指出一个数据块的字节数,即一个数据块的大小尺寸
count --- 指出一次读入多少个数据块(size)
fp --- 这是个文件指针,指出要从其中读出数据的文件
函数返回值:正常返回:实际读取数据块的个数,即count。异常返回:如果文件中剩下的数据块个数少于参数中count指出的个数,或者发生了错误,返回0值。此时可以用feof()和ferror()来判定到底出现了什么
3.fwrite函数以二进制形式写数据到文件中去
头文件:#include <stdio.h>
函数原型:int fwrite(void *buffer, unsigned size, unsigned count, FILE *fp)
函数形参:buffer --- 这是一个void型指针,指出要将其中数据输出到文件的缓冲区首地址
size --- 指出一个数据块的字节数,即一个数据块的大小尺寸
count --- 一次输出多少个数据块(size)
fp --- 这是个文件指针,指出要从其中读出数据的文件
函数返回值:正常返回:实际输出数据块的个数,即count。异常返回:返回0值,表示输出结束或发生了错误。
4.ferror函数检查文件读/写出错
函数原型:int ferror(FILE *fp)
函数形参:已打开的文件指针
函数功能:检查由fp指定的文件在读写时是否出错。
函数返回值:0:表示无错误。1:表示出错。
5.fseek函数用来设定文件当前读写位置
头文件:#include <stdlo.h>
函数原型:int fseek(FILE * stream, long offset, int whence)
函数形参:stream --- 已经打开的文件指针
offset --- 偏移量,表示要从起始点开始移动的距离,可以为正(前移),为负(后移),为0(保持不动)
whence --- 模式,该参数确定起始点
表示模式的明示标量有:
SEEK_SET --- 文件开始处
SEEK_CUT --- 文件当前位置
SEEK_END --- 文件末尾
函数功能:将文件读写位置指针移动到指定位置
函数返回值:如果一切正常,fseek函数的返回值为0;如果出现错误(例如试图移动的距离超出了文件的范围),其返回值是-1。
6.ftell函数用来获取文件读写指针的当前位置
头文件:#include <stdio.h>
函数原型:long ftell(FILE * stream)
函数形参:已经打开的文件指针
函数功能:获取文件读写指针的当前位置
函数返回值:成功则返回当前的读写位置,失败返回 -1。对于二进制文件,则返回从文件开头到结尾的字节数。对于文本文件,返回的数值可能没有实际意义,但仍然可以用来保存当前的读写位置,供 fseek() 函数使用。
* 在随机方式存取文件时,由于文件位置频繁的前后移动,程序不容易确定文件的当前位置。使用fseek函数后再调用函数ftell()就能非常容易地确定文件的当前位置。ftell() 经常和 fseek() 一起使用。
对磁盘文件的操作必须“先打开,后读写,再关闭”,“打开”文件的含义:以某种方式从磁盘上查找指定的文件或创建一个新文件。
头文件:#include <stdio.h>
函数原型:FILE * fopen(const char * path, const char * mode)
函数形参:path --- 包含欲打开的文件路径及文件名
mode --- 代表文件流形态
mode 有下列几种形态字符串:
r --- 以只读方式打开文件,该文件必须存在
r+ --- 以读/写方式打开文件,该文件必须存在
w --- 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件
w+ --- 打开可读写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件
a --- 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留
a+ --- 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留
函数功能:用指针的模式打开一个文件
函数返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回 NULL,并把错误代码存在 errno 中。
2.fread函数以二进制形式读取文件中的数据
头文件:#include <stdio.h>
函数原型:int fread(void *buffer, unsigned size, unsigned count, FILE *fp)
函数形参:buffer --- 这是一个void型指针,指出要将读入数据存放在其中的存储区首地址
size --- 指出一个数据块的字节数,即一个数据块的大小尺寸
count --- 指出一次读入多少个数据块(size)
fp --- 这是个文件指针,指出要从其中读出数据的文件
函数返回值:正常返回:实际读取数据块的个数,即count。异常返回:如果文件中剩下的数据块个数少于参数中count指出的个数,或者发生了错误,返回0值。此时可以用feof()和ferror()来判定到底出现了什么
3.fwrite函数以二进制形式写数据到文件中去
头文件:#include <stdio.h>
函数原型:int fwrite(void *buffer, unsigned size, unsigned count, FILE *fp)
函数形参:buffer --- 这是一个void型指针,指出要将其中数据输出到文件的缓冲区首地址
size --- 指出一个数据块的字节数,即一个数据块的大小尺寸
count --- 一次输出多少个数据块(size)
fp --- 这是个文件指针,指出要从其中读出数据的文件
函数返回值:正常返回:实际输出数据块的个数,即count。异常返回:返回0值,表示输出结束或发生了错误。
4.ferror函数检查文件读/写出错
函数原型:int ferror(FILE *fp)
函数形参:已打开的文件指针
函数功能:检查由fp指定的文件在读写时是否出错。
函数返回值:0:表示无错误。1:表示出错。
5.fseek函数用来设定文件当前读写位置
头文件:#include <stdlo.h>
函数原型:int fseek(FILE * stream, long offset, int whence)
函数形参:stream --- 已经打开的文件指针
offset --- 偏移量,表示要从起始点开始移动的距离,可以为正(前移),为负(后移),为0(保持不动)
whence --- 模式,该参数确定起始点
表示模式的明示标量有:
SEEK_SET --- 文件开始处
SEEK_CUT --- 文件当前位置
SEEK_END --- 文件末尾
函数功能:将文件读写位置指针移动到指定位置
函数返回值:如果一切正常,fseek函数的返回值为0;如果出现错误(例如试图移动的距离超出了文件的范围),其返回值是-1。
6.ftell函数用来获取文件读写指针的当前位置
头文件:#include <stdio.h>
函数原型:long ftell(FILE * stream)
函数形参:已经打开的文件指针
函数功能:获取文件读写指针的当前位置
函数返回值:成功则返回当前的读写位置,失败返回 -1。对于二进制文件,则返回从文件开头到结尾的字节数。对于文本文件,返回的数值可能没有实际意义,但仍然可以用来保存当前的读写位置,供 fseek() 函数使用。
* 在随机方式存取文件时,由于文件位置频繁的前后移动,程序不容易确定文件的当前位置。使用fseek函数后再调用函数ftell()就能非常容易地确定文件的当前位置。ftell() 经常和 fseek() 一起使用。