问题描述
- 求代码 用C++控制台 写判断两个文档是否一样,不一样,进行覆盖。
-
求代码 用C++控制台 写判断两个文档是否一样,不一样,进行覆盖。 要求打开文件后,在内存中比较 ,谢谢大神
解决方案
提供个思路,随便搜一搜就能解决的,计算文档的md5,如果完全一致,那就一样,不一致,直接覆盖好了
解决方案二:
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fp1,*fp2;
char fn1[]="t1.txt",fn2[]="t2.txt";
if((fp1=fopen(fn1,"rb"))==NULL)
{
printf("文件%s无法打开n",fn1);
return;
}
if((fp2=fopen(fn2,"rb"))==NULL)
{
printf("文件%s无法打开n",fn2);
return;
}
int l1,l2;
int flag=0;
fseek(fp1,0,2);
l1=ftell(fp1);
fseek(fp2,0,2);
l2=ftell(fp2);
if(l1!=l2)
{
printf("文件长度不等!n");
return;
}
rewind(fp1);
rewind(fp2);
while(!feof(fp1))
{
if(fgetc(fp1)!=fgetc(fp2))
{
flag=1;
break;
}
}
if(flag==0) printf("文件相同n");
else
{
printf("文件不同,文件%s覆盖文件%sn",fn1,fn2);
rewind(fp1);
fclose(fp2);
fp2=fopen(fn2,"wb");
while(!feof(fp1))
fputc(fgetc(fp1),fp2);
}
fclose(fp1);
fclose(fp2);
}
时间: 2024-11-18 06:30:07