文件

来源:互联网 发布:c 语言declaration 编辑:程序博客网 时间:2024/03/29 04:31

freopen

1.从test文件读入数据,只输入到test2文件中,屏幕不打印(因为现在转化成了stdout,标准的文件输出),test2不存在则会新建,存在会覆盖。

#include<stdio.h>int main(){int i=1,n;freopen("test.txt","r",stdin);//从test文件读入数据freopen("test2.txt","w",stdout);//把该程序处理后数据输出到test2文件while(scanf("%d",&n)!=EOF)printf("%d:%d\n",i++,n);return 0;}


2.从键盘输入数据,只输出到test2文件中,屏幕不打印,test2不存在则会新建,存在会覆盖。

#include<stdio.h>int main(){int i=1,n;freopen("test2.txt","w",stdout);//把该程序处理后数据输出到test2文件while(scanf("%d",&n)!=EOF)//手动输入printf("%d:%d\n",i++,n);return 0;}

FILE

注意,文件只有关闭的时候才会保存数据,关闭函数fclose();。另外读到结束标志Ctrl+Z即使没有关闭函数,文件也会自然保存数据再关闭。

fprintf();的好处就是可以自定义地把不同的东西输入到不同的文件中。

1.

#include<stdio.h>int main(){int a,b;FILE *f;f=fopen("aaa.txt","w");//打开aaa文件while(scanf("%d%d",&a,&b)!=EOF){fprintf(f,"%d+%d=%d\n",a,b,a+b);//数据向文件aaa输出printf("%d+%d=%d\n",a,b,a+b);//向屏幕输出}fclose(f);//关闭文件return 0;}


2.

#include<stdio.h>int main(){FILE *f1,*f2,*f3;int a,b;//打开三个文件f1=fopen("aa.txt","r");f2=fopen("bb.txt","w");f3=fopen("cc.txt","w");while(fscanf(f1,"%d%d",&a,&b)!=EOF)//从f1文件中读入数据{fprintf(f2,"%d\n",a+b);//a+b的和保存到f2文件中fprintf(f3,"%d %d\n",a,b);//a和b保存到f3文件中printf("%d\n",a+b);//向屏幕打印a+b的和}//关闭三个文件fclose(f1);fclose(f2);fclose(f3);return 0;}


fstream

C++下的

#include<iostream>#include<fstream>//文件流using namespace std;int main(){int a,b;ifstream cin("aaa.txt");//从aaa文件读取数据ofstream cout("bbb.txt");//输出到bbb文件,屏幕上不打印while(cin>>a>>b){cout<<a<<"+"<<b<<"=";cout<<a+b<<endl;}return 0;}