文件操作基本步骤:首先使用fopen获得指向文件的指针,
1.fopen
作用:打开一个文件,返回指向该文件的指针
函数原型:FILE * fopen(const char *path,cost char *mode)
参数说明:第一个参数为欲打开文件的文件路径及文件名,第二个参数表示对文件的打开方式
返回值:文件打开了,返回一个指向该打开文件的指针(FILE结构);文件打开失败,错误上存error code(错误代码)
注:mode有以下值:
r:只读方式打开,文件必须存在
r+:可读写,必须存在
rb+:打开二进制文件,可以读写
rt+:打开文本文件,可读写
w:只写,文件存在则文件长度清0,文件不存在则建立该文件
w+:可读写,文件存在则首先将文件清空再写入,文件不存在则建立该文件
a:附加方式打开只写,不存在建立该文件,存在写入的数据加到文件尾,EOF符保留
a+:附加方式打开可读写,不存在建立该文件,存在写入的数据加到文件尾,EOF符不保留
wb:打开二进制文件,只写
wb+:打开或建立二进制文件,可读写
wt+:打开或建立文本文件,可读写
at+:打开文本文件,可读写,写的数据加在文本末尾
ab+:打开二进制文件,可读写,写的数据加在文件末尾
由mode字符可知,上述如r、w、a在其后都可以加一个b,表示以二进制形式打开文件
注意:在fopen操作后要进行判断,是否文件打开,文件真正打开了才能进行后面的读或写操作,如有错误要进行错误处理
例:FILE *fp=fopen("testfile","w+")
2.fwrite
作用:向文件写入一个数据块
函数原型:size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
参数说明:第一个参数为指向文件输出地址的指针,参数二表示写入的每个数据路块的字节数,参数三表示要写入size字节数据块的个数,参数四为指向目标文件的指针。
返回值:实际写入的数据块的个数。
3.fseek
作用:重定位文件内部指针
函数原型:int fseek(FILE *stream,long offset,int framewhere)
参数说明:第一个为文件指针,第二个是指针的偏移量,第三个是指针偏移起始位置
返回值:成功则返回0,否则返回其他值
偏移量的三种取值: SEEK_SET 文件头
SEEK_CUR 当前指针位置
SEEK_END 文件尾
4.fread
作用:读取文件数据块(注意:文件读取后文件内指针会随之移动)
memset
函数原型:void *memset(void *s,int c,size_t n)
作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。
sizeof
作用:返回类型所占的字节数