1. 程式人生 > >c++ 判斷兩個檔案是否相同

c++ 判斷兩個檔案是否相同

作者:MyLinChi 
來源:CSDN 
原文:https://blog.csdn.net/MyLinChi/article/details/53264342 

程式很簡單,主要使用了一個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