如何比较两个文件的内容(在线等待)

xiajianfeng 2004-10-28 01:09:12
有两个文件,想比较里面的内容是否相同,请大家指教.
...全文
185 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
carylin 2004-10-28
  • 打赏
  • 举报
回复
少了个头文件<fstream>
carylin 2004-10-28
  • 打赏
  • 举报
回复
楼主也可以这样(我认为代码简单一点):
#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main()
{
ifstream inf1("data1.txt",ios_base::in);
ifstream inf2("data2.txt",ios_base::in);
if (!inf1.is_open() || !inf1.is_open())
{
cerr << "error!" << endl;
exit(-1);
}

ostringstream oss1, oss2;
oss1 << inf1.rdbuf();
oss2 << inf2.rdbuf();

if (oss1.str() == oss2.str()) {cout << "equal" << endl;}
else {cout << "not equal" << endl;}

return 0;
}
lifan5748 2004-10-28
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<dos.h>

int compare(FILE *fp1,FILE *fp2)
{
char a,b;
int flag=0;
do
{
a=fgetc(fp1); b=fgetc(fp2);
if(a!=b) break;
if(a==EOF&&b==EOF)
{
flag=1;
break;
}
}while(a!=EOF&&b!=EOF);
return flag; /*返回值为0则不相同,为1则相同 */
}
void main()
{
FILE *fp1,*fp2;
fp1=fopen("c:\\a.txt","rb");
fp2=fopen("c:\\b.txt","rb");
printf("%d",compare(fp1,fp2)) ;
getch();
}
ddgfei 2004-10-28
  • 打赏
  • 举报
回复
while(fgetc(fp1)!=EOF&&fgetc(fp2)!=EOF){
if(fgetc(fp1)==fgetc(fp2))
continue;
break;
}
if(fgetc(fp1)==EOF&&fgetc(fp2)==EOF)
cout<<"相等"<<endl;
return;
else
cout<<"不相等"<<endl;
return;
xiajianfeng 2004-10-28
  • 打赏
  • 举报
回复
TO lifan5748(易水寒):
具体怎么做?
lifan5748 2004-10-28
  • 打赏
  • 举报
回复
把用文件指针*fp1、*fp2打开两个文件,然后用fgetc(fp1)==fgetc(fp2)进行判断

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧