1.FILE *fp,FILE必须大写
2.文件指针名=fopen(文件名,文件打开方式);如fp=fopen("f1.txt","r");
文件打开方式 | ||
r | 打开只读文件 | 文件必须已经存在 |
w | 只写文件 | 若不存在则新建,若已存在则删除重建 |
a | 追加写文件 | 若不存在则新建,若已存在则在原内容后继续写 |
r+ | 打开读写文件 | / |
w+ | 打开读写文件 | 若不存在则新建,若已存在则删除重建 |
a+ | 打开读写文件 | 若不存在则新建,若已存在则在原内容后继续写 |
3.记得关闭文件fclose(文件指针);若成功关闭则返回0,失败则返回非零值。
if(fclose(fp))
{
printf("Can not close the file!\n");
exit(0);
}
4.输入/输出重定向freopen() ps:JLU题感觉没怎么用过
freopen("in.txt","r",stdin); //使用scanf输入时,不再从键盘输入数据,而是从in.txt文件中读取输入
freopen("out.txt","w",stdout); //输出重定向比较常用,输出数据保存在out.txt文件中
完整代码如下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a,b;
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
while(scanf("%d%d",&a,&b)!=EOF)
printf("%d\n",a+b);
fclose(stdin);
fclose(stdout);
return 0;
}
5.fputc(ch,fp);将一个字符写到磁盘文件中,同时读写指针后移一位 //char ch;
fgetc(fp);从文件中读出一个字符,同时读写指针后移一位
6.fputs(s,fp); 将字符串写入磁盘文件,'\0'不写入,成功返回非负数,否则返回EOF//char s[100];
fgets(s,strlen(s)+1,fp);从文件中读取字符串,成功返回读取的字符串,否则返回空指针
7.格式化文件读/写函数 ☆JLU重点,文件题必用
FILE *fp;int n;float x;
fp=fopen("a.txt","r");
fscanf(fp,"%d%f",&n,&x);
fp=fopen("b.txt","w");
fprintf(fp,"%d%f",n,x);
8.检测文件结束函数feof(fp),只适用文本文件,若到达结束位置,返回1;否则返回0 ☆重点
9.其余函数
fread(),fwrite(),fseek(),rewind(),ftell(),ferror(),clearerr()这些了解即可,目前JLU用不上