您的位置:首页 > 编程语言 > C语言/C++

C++中的freopen()函数实现比较两个文件的内容是否相同

2016-11-21 21:06 2747 查看
程序很简单,主要使用了一个freopen()函数。具体的用法是:

函数名:freopen 

声明:FILE *freopen( const char *path, const char *mode, FILE *stream );

 所在文件: stdio.h 

参数说明: path: 文件名,用于存储输入输出的自定义文件名。

                     mode: 文件打开的模式。和fopen中的模式(如r-只读, w-写)相同。 

                    stream: 一个文件,通常使用标准流文件。 返回值:成功,则返回一个path所指定文件的指针;失败,返回NULL。(一般可以不使用它的返回值) 功能:实现重定                           向,把预定义的标准流文件定向到由path指定的文件中。标准流文件具体是指stdin、stdout和stderr。其中stdin是标准输入流,默认为键盘;stdout是标准输出流,默                      认为屏幕;stderr是标准错误流,一般把屏幕设为默认。

代码如下:

#include<iostream>
#include<string>

using namespace std;
int main()
{
string t,ans,ans2;
int i;
freopen("in1.txt","r",stdin);
char c;
while(scanf("%c",&c)!=EOF) ans+=c;
fclose(stdin);
freopen("in2.txt","r",stdin);
while(scanf("%c",&c)!=EOF) ans2+=c;;
fclose(stdin);
if(ans.size()!=ans2.size()){cout<<"NO\n";return 0;}
for(i=0;i<ans.size();i++)
if(ans[i]!=ans2[i]){cout<<"NO\n";return 0;}
cout<<"YES\n";
return 0;
}

参考文章:http://blog.csdn.net/wangzhicheng1983/article/details/8039306
                    http://www.cnblogs.com/moonlit/archive/2011/06/12/2078712.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: