一、打开文件
FILE *fp=NULL;//初始化文件指针变量
fp=fopen("test.text","r");//test.text是文件名,r是模式
if(fp==NULL)
{dosomething}
getchar();//暂时
模式说明:
r:只读方式,不能改变硬盘文件状态。如果文件名不存在,fp就为NULL。
w:只写方式,要改变硬盘文件状态。如果文件文件名不存在,就新建这个文件,如果存在,就删除了再新建。
a:追加模式,可以改变硬盘文件状态,在文件末尾添加新的数据(打开的时候不删除原有数据)。如果文件名不存在,就创建一个新文件。
此外:r+,w+,a+,rw,wr,ar
二、读写文件数据
1、单字节操作
(1)、fgetc():从指定文件中读出一个字节长的数据
char fgetc(FILE *fp);返回数据: 如果是文本文件,返回字符;如果是二进制文件,返回一个字节。(可用r模式)
eg:while(!feof(fp))//判断是否读取到底了
printf("%c",fgetc(fp));//读取
(2)、fputc():把字符写入文件中
char fputc(char ch,FILE *fp);返回数据:写入成功返回写入字符,失败则返回-1。(ch可以是字符常量或者变量,fp模式必须可写,如w、a、r+)
eg:while(1)
{
ch=getchar();
if(ch!='#')
fputc(ch,fp);
else
break;
}
2、字符串操作
(1)、fgets():从指定文本文件中读到一个字符串
char *fgets(char *str,int size,FILE *fp);返回值:str所指向的地址
注意:读到'\n'和'\0'就停止读
(2)、fputs():向指定文件中写入字符串
int fputs(char *str,FILE *fp);返回值:写入成功返回0,失败返回其他。(fp模式包含可写模式)
3、格式化字符串操作函数
(1)、fprintf():按照一定格式向文件中写入数据
int fprintf(FILE *fp,格式化字符串,输出参数列表);fp应包含写方式
eg:fprintf(fp,"i=%d,j=%0.2f",i,j);fprintf(fp,"abcde%s",str);
(2)、fscanf():将某格式的数据从文件中读取出来
int fscanf(FILE *fp,格式化字符串,输入参数列表);fp包含度方式
eg:fscanf(fp,"i=%d,s=%s",&i,str);如果文件中:i=10,s=hello。那么最后i=10,str=hello
4、二进制数据操作函数
(1)、fwrite():向二进制文件中写入数据
int fwrite(unsigned char *buff,int size,int count,FILE *fp);返回值:成功返回1,失败返回其他(fp应包含二进制写入方式,如wb,ab)
(2)、fread():读取二进制文件中的数据
int fread(undigned char *buff,int size,int count,FILE *fp);返回值:成功返回1,失败返回其他(fp应包含二进制读方式,如rb)
三、关闭文件
int fclose (FILE *fp);// 必须要close,不然程序关闭了才完成操作
fflush(FILE *fp);//这样可以不用关闭,也可完成操作