C与C++文件输入输出效率简单研究 上篇

来源:互联网 发布:纸牌游戏算法 编辑:程序博客网 时间:2024/06/05 18:21

最近在读《算法竞赛 入门经典》觉得这本书蛮好的,不知道是否有人读过。

里面的一段特别有意思,讲的是C和C++里面从文件输入输出的方法,下面我来简单的介绍一下。


对于C来说,文件输入有下面两种方式:

1. fopen方法

fopen方法是C语言中对文件操作的最简单的方法也是我最常用的方法,它是通过操作文件指针和相关文件输入输出函数来实现的,下面简单给出代码。(文件默认为data.in/data.out 下同)

FILE *fin,*fout;                        //声明文件类型指针 fin=fopen("data.in","r");               //将fin指针定位到输入文件 fout=fopen("data.out","w");             //将fout指针定位到输出文件 fscanf(fin,_format,list...);            //从文件中格式化读入数据 fprintf(fout,_format,list...);          //格式化输出数据到文件 fclose(fin);                            //关闭文件 fclose(fout);

2.文件重定向方法

文件重定向方法是我从书上看到的,原理就是把标准输入输出重定向到文件,这样直接用printf/scanf 即可操作文件

freopen("data.in","r",stdin);           //标准输入输出重定向freopen("data.out","w",stdout);scanf(_format,list...);                //输入输出数据printf(_format,list...);


对于C++也有两种方法:

1.文件重定向

与之前的第2种方法类似的也可以采取文件输入输出重定向的方法

freopen("data.in","r",stdin);           //重定向freopen("data.out","w",stdout);cin >> _data;                           //输入输出cout << _data; 

2.标准方法

类似C语言,C++也有相关的类似方法

#include<fstream>using namespace std;ifstream fin("data.in");                //文件输入输出声明ofstream fout("data.out");fin >> _data;                           //数据输入输出fout << _data;fin.close();                            //关闭文件fout.close(); 
当然C++还有很多方法可以处理文件数据,时间关系就不一一列举了。


下篇中我将开始对上述的4个方法作时间上的研究,欢迎交流讨论!


原创粉丝点击