文件读写
来源:互联网 发布:vc 中mfc编程方法 编辑:程序博客网 时间:2024/06/03 09:15
方法一(freopen)
此方法主要是利用freopen将输入、输出重定向到文件中。例如下面的程序从sum.in文件中读取两个整数,计算出两整数之和后输出到sum.out文件中。
//freopen方式读写文件#include <iostream>#include <cstdio>#include <cstdlib>//此行必加,否则linux下可能出问题 using namespace std;int main(){ int a,b; freopen("sum.in","r",stdin); //从sum.in中读取数据 freopen("sum.out","w",stdout);//输出到sum.out文件 cin>>a>>b; cout<<a+b<<endl; //system("pause"); 一定要将此句注释掉 return 0;}
freopen的说明:
只需加入9、10行语句即可很方便地实现读写文件数据的功能。源代码及读写文件名需根据题意严格定义。
方法二(FILE*)
此方法虽然比方法一复杂,但该方法不属于文件重定向语句,且读取速度快,因此在比赛中推荐使用此方法。
//读写文件方法2 #include <iostream>#include <cstdlib>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函数是格式化读写函数,但读写对象为文件。
方法三(fstream)
此方法使用了fstream头文件,推荐C++学习者使用。请看下例:
//读写文件方法3 #include <iostream>#include<fstream>using namespace std;int main(){ int a,b,c; ifstream fin("in.txt"); ofstream fout("out.txt"); fin>>a>>b>>c; fout<<a*b*c<<endl;//注意cin与cout的变化 fin.close(); fout.close(); return 0;}
读取10万个数据(0≤数据≤399)并重新写入文件速度测试比较如表
阅读全文
1 0
- 文件读写、剪贴板读写
- 读写文件
- 文件读写
- 读写文件
- 读写文件
- 文件读写
- 读写文件
- 读写文件
- 读写文件
- 文件读写
- 文件读写
- 文件读写
- 文件读写
- 读写文件
- 文件读写
- 文件读写
- 文件读写
- 文件读写
- unity Slider的具体使用
- Linux下的源码安装服务,配置服务为系统服务启动
- 海航集团与陕西省人民政府签订战略合作协议 破海航负债倒闭谣言
- 人工智能全景图
- Javascript--作用域和赋值操作
- 文件读写
- 【技术】Java入门:详解Java异常处理中throw与throws关键字的用法区别
- 位运算--与,或,异或,左移,右移
- 反向代理与正向代理区别
- 百度2017春招-度度熊回家
- 一步一步玩控件:自定义TabControl——从山寨Safari开始
- 自动打包的流程
- java 简单版贪吃蛇小游戏
- postman 使用