fopen函数介绍
基本格式:
FILE *fp;
fp=fopen("file a","r");
fclose(fp);
意义:
在当前目录下打开文件file a,只允许进行“读”操作,并使fp指向该文件。
使用方式:
文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:
r(read) | 只读 |
w(write) | 只写 |
a(append) | 追加 |
t(text) | 文本文件,可省略不写 |
b(binary) | 二进制文件 |
+ | 读和写 |
具体组合方式:
"r" = "rt" | 打开一个文本文件,文件必须存在,只允许读 |
"r+" = "rt+" | 打开一个文本文件,文件必须存在,允许读写 |
"rb" | 打开一个二进制文件,文件必须存在,只允许读 |
“rb+” | 打开一个二进制文件,文件必须存在,允许读写 |
"w" = “wt” | 新建一个文本文件,已存在的文件将被删除,只允许写 |
"w+" = "wt+" | 新建一个文本文件,已存在的文件将被删除,允许读写 |
“wb” | 新建一个二进制文件,已存在的文件将被删除,只允许写 |
“wb+” | 新建一个二进制文件,已存在的文件将被删除,允许读写 |
"a" = "at" | 打开或新建一个文本文件,只允许在文件末尾追写 |
"a+" = "at+" | 打开或新建一个文本文件,可以读,但只允许在文件末尾追写 |
“ab” | 打开或新建一个二进制文件,只允许在文件末尾追写 |
“ab+” | 打开或新建一个二进制文件,可以读,但只允许在文件末尾追写 |
读取文件并将内容打印到屏幕上
#include <iostream>
using namespace std;
int main()
{
char ch;
FILE *fin=fopen("C:\\input.text","r"); //打开文件,引号内是文件的位置,r是读取的意思,注意将所有\改为\\
while((ch=fgetc(fin))!=EOF)
cout<<ch; //输出文件中的每一个字符
fclose(fin); //关闭文件
return 0;
}
读取文件并对文件内容进行操作
比如说我在文件中存放着3行2列的数据,想要计算每行数字之和,并将结果输出到屏幕上(即300 700 1100)。
100 | 200 |
300 | 400 |
500 | 600 |
#include <iostream>
using namespace std;
int main()
{
int a,b;
FILE *fin=fopen("C:\\input.text","r");
while(!feof(fin))
{
fscanf(fin,"%d%d",&a,&b);
cout<<a+b<<endl;
}
fclose(fin);
return 0;
}
当数据比较多时,我们希望直接将结果保存到文件里,那么先建立一个空白的文件(例如output.text),用于存放结果。
#include <iostream>
using namespace std;
int main()
{
int a,b;
FILE *fin=fopen("C:\\input.text","r"); //读文件
FILE *fout=fopen(C:\\output.text","w") //写文件
while(!feof(fin))
{
fscanf(fin,"%d%d",&a,&b);
fprintf(fout,"%d\n",a+b);
}
fclose(fin);
fclose(fout);
return 0;
}
然后直接打开output.text就可以看到结果了。