每日三百行代码 第三十一天

文件读写

读写文件主要有以下几种方法,只要先掌握其中的一两种方法

方法一
//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函数是格式化读写函数,但读写对象为文件。