freopen与fopen的区别

来源:互联网 发布:大数据创业项目 编辑:程序博客网 时间:2024/06/09 21:12
C语言中freopen()函数是用来重新定向的,所谓重新定向是给输入和输出的位置重新定向。原本输入位置是键盘缓存区,输出在屏幕上,用了重新定向后可以将输入位置改变成一个文件,而输出位置也可以输出到一个文件中,具体代码可以这么写:

freopen ("text.txt","r",stdin); freopen ("text1.txt","w",stdout);
这里输入和输出便都在文件中操作了。可是这样做有一个弊端,就是所有输入输出都将在文件中操作,如何灵活控制呢?这就要用到fopen()函数了,可以自由在文件输入输出中转换,具体语法是:

FILE *fin,*fout; fin = fopen("text.txt","rb"); fout = fopen("text1.txt","wb"); fscanf (fin,"%d",&x); fprintf (fout,"%d",x); fclose(fin); fclose(fout);

这里函数稍微复杂了些,不过仔细看看也蛮简单的,最重要的是多了文件关闭操作,这样是为了不持续占用系统资源。在读取、写入操作时用“rb”的原因是为了兼容Linux系统,只在windows下运行只要“r”即可,同样,scanf和printf函数都要改成fscanf和fprintf,在前面加上你要输入的文件和输出的文件名,这样就可以有选择性的操作文件了。

(原创)Final博客(http://www.finalblog.net/archives/257)本文可以任意转载,但本段内容必须保留,否则将追究其法律责任。

原创粉丝点击