一 打开文件
FILE *fp;
fp=fopen(地址字符串或存地址的字符串指针,”执行权限”)
执行权限可以是r,w,a,r+,w+,a+,如果是二进制文件,只需要后面加个b,如rb,r+b,rb+
如果打开成功,返回地址;打开失败,返回NULL
所以可以用fp=fopen(file,”W”)==NULL来判断是否打开成功
如fp=fopen(“c:\exam\test.txt”,”w”);
fp=fopen(file,”r”);file存的是地址字符串
二 关闭文件
fclose(fp);
三 从文件中读取
1 字符:fgetc(fp),读取成功返回字符,光标移动到下一位;否则返回EOF(也就是-1)
常有while(ch=fgetc(fp)!=EOF)来判断是否读取完毕
也可以用feof(fp)判断是否读取完毕,返回1,说明到了EOF;返回0说明没到EOF
所以通常有while(!feof(fp))
2 字符串:fgets(char s,int size,FILE fp),读到EOF或者换行符就结束
如fgets(s,n,fp);
3 格式化读取:fscanf(FILE fp,”格式控制符”,变量地址)
如fscanf(fp,”%d %d %s”,&n,num,s);
4 二进制文件:fread(指针或者地址,int size或者sizeof(类型),写几个,FILE fp)
如 fread(&e[i],sizeof(Person),3,fp);
fread(s,sizeof(char),10,fp);
四 写入文件
1 字符:fputc(char ch,FILE *fp)
如while(ch=fgetc(fp)!=EOF)
fputc(ch,fp1);
2 字符串:fputs(字符串常量、字符数组名或字符型指针,FILE *fp),读入成功返回0,否则返回EOF
如fputs(“Hello world”,fp); fputs(str,fp);
3 格式化输出到文件: fprintf(FILE fp,”格式控制符”,变量)
如fprintf(fp,”%d %c %s”,n,ch,s);
4 二进制文件:fwrite(指针或者地址,int size或者sizeof(类型),写几个,FILE fp)
如 fwrite(&e[i],sizeof(Person),3,fp);
fwrite(s,sizeof(char),10,fp);
五 指针重返
rewind(FILE *fp);
如你一直fgetc,然后想从头开始指,就可以用rewind(fp);