第六节 文件操作

  在算法类竞赛的过程中,还需要我们掌握文件操作。

  在去年的蓝桥杯省赛中,第一道题需要处理大量的数据。如果每次都要进行大量的数据输入操作,会花费很多时间。这个时候,把数据存放到文本文档中去,再使用文件操作读取数据,进行计算,能够节省大量的时间。

  除此之外,在调试程序时,也可以将测试数据保存在文件中读取,可以省去每次编译时,数据输入的时间。

  C语言使用文件指针来进行文件的读写。

  首先是创建文件指针:

1
FILE *fin;

  这里的FILE一定要大写,用于存放文件的变量一定是指针类型。

  接下来要对文件指针初始化:

1
fin = fopen("xx.txt","w");

  这里的fopen()函数拥有两个参数,一个是用于读写的用户名,另一个就是读写的参数,这个参数由以下几种字母组成:

r(read): 只读
w(write): 只写
a(append): 追加
t(text): 文本文件,可省略不写
b(binary): 二进制文件
+: 读和写

  我们通常使用w创建输出和输出两个文档,然后将输入文档改为r即可。

  下面是一个简单的A+B问题的文件操作实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
FILE *fin,*fout;
int a,b,res;
fin = fopen("in.txt","r");
fout = fopen("out.txt","w");
fscanf(fin,"%d %d",&a,&b);
res = a+b;
fprintf(fout,"%d\n",res);
fclose(fin);
fclose(fout);
return 0;
}