每日三百行代码 第三十一天
文件读写
读写文件主要有以下几种方法,只要先掌握其中的一两种方法
方法一
//freopen方式读写文件
#include<iostream>
#include<cstdlib>
using namespace std;
int main(){
int a,b;
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
cin>>a>>b;
cout<<a+b<<endl;
return 0;
}
方法二
//FILE*
#include<iostream>
#include<cstdlib>
using namespace std;
int main(){
int i,len=0,temp[100];
FILE*in=fopen("a.txt","r");
FILE*out=fopen("b.txt","w");
for(i=0;!feof(in);i++)
{
fscanf(in,"%d",&temp[i]);
len++;
}
for(i=0;i<len-1;i++){
fprintf(out,"%d",temp[i]);
}
fclose(in);
fclose(out);
}
FILE的说明:
每个被使用的文件都在内存中开辟一个区,用来存放文件的有关信息(如文件的名字、文件状态及文件当前位置等)。这些信息是保存在一个结构体类型的变量中的。该结构体类型由系统定义,取名为FILE。文件读写完毕后需要使用fclose函数关闭文件流。
feof函数的说明:
feof(in)中in是文件指针。它只有两个返回值。当遇到文件结束符(EOF)时返回1,否则返回0。所以第九行中!feof(in)的意思是,若feof(in)未遇到EOF,则一直执行for循环。
fprintf函数和fscanf函数的说明:
fprintf函数和fscanf函数是格式化读写函数,但读写对象为文件。