格式:一般操作一个文件分为以下5个部分
1.导入<stdio.h>头文件、定义文件指针
FILE *fp = NULL; //FILE是一个别名必须全大写
2
.使用fopen打开一个文件,打开方式有
(
r、w、a、r+、w+、a+、t、b
)
若打开成功则返回文件的首地址、若失败则返回NULL
fp = fopen("test.txt","r");
说明:r:只读方式打开一个文件,当文件不存在时返回NULL
w:只写方式打开一个文件,当文件存在时,将该文件删除重新创建该文件;当文件不存在
时,创建该文件
a:追加方式打开一个文件,当文件存在时,直接在原文件的结尾追加新的内容,当文件不存
在时创建新的文件
r+:读写方式打开一个文件,其他和r一样
w+:读写方式打开一个文件,其他和w一样
a+:读写方式打开一个文件,其他和a一样
t: 以文本文件打开一个文件
b: 以二进制文件打开一个文件
3
.判断文件是否打开成功
if(fp != null){
4.对文件进行操作:
EOF是文件结束的标志
字符操作函数:fgetc(变量,文件指针) fputc(变量,文件指针)
范例:ch = fgetc(fp); fputc(ch, fp);
字
符串操作函数:fgets(变量,读取字节数,文件指针) fputs(变量,文件指针)
注意:1)fgets读取的时候,当文件内容读取完毕后,会给字符加上结束符\0
2)fgets读取的时候,遇到\n或者EOF,读取结束
3)fputs在函数有一个返回值,执行后会返回本次写入的字符串的长度
范例:count = fputs(str, fp); fgets(str2, sizeof(str2), fp);
块操作函数:fread(地址,块大小,块数,文件指针) fwrite(地址,块大小,块数,文件指针)
说明:
块大小即字节数,块数即每次读\写块大小的个数
范例:fwrite(str, strlen(str), 1, fp); fread(ch, sizeof(ch), 1, fp);
格式化读写函数:fscanf(文件指针,格式控制符,地址...) fprintf(文件指针,格式控制符,
变量...)
范例:fprintf(fp,"%d#%d;",a,b); fscanf(fp, "%d#%d;",&m,&n);
文件指针操作函数:
将文件指针置文件首地址:rewind(文件指针);
随机存取函数:fseek(文件指针,移动字节数,文件指针的位置)
移动参考可以取3个值:
文件首地址:SEEK_SET ==0
文件当前地址:SEEK_CUR ==1
文件尾地址:SEEK_END ==2
范例:fseek(fp, sizeof(struct Student)*2, SEEK_SET);
5.使用fclose(文件指针)关闭文件
fcolse(fp);//文件操作最后必须关闭文件指针,否则可能会造成文件无法正常写入与读出