用C写一个文件比较,比较两个二进制文件,如果出现不同之处,则输出不同之处的位置,程序终止在线等 100

各位大侠急求,最好能给出代码。在线等!!需要一次读入比较大的部分,如1K或者10K。然后进行比较,一个一个比较太慢,多字节比... 各位大侠急求,最好能给出代码。在线等!!
需要一次读入比较大的部分,如1K或者10K。然后进行比较,一个一个比较太慢,多字节比
展开
 我来答
匿名用户
2010-11-24
展开全部
typedef int (WINAPI ICEPUB_COMPAREFILES)(char *strFilename1,char *strFilename2);
ICEPUB_COMPAREFILES *icePub_compareFiles = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_compareFiles = (ICEPUB_COMPAREFILES *)GetProcAddress(hDLLDrv, "icePub_compareFiles");
}

int v=icePub_compareFiles("a.dat","b.dat");
if(v == 0)
AfxMessageBox("数据相同");
if(v > 0)
{
CString str1;
str1.Format("在第%d字节处不同",v);
AfxMessageBox(str1);
}
if(v == -2)
AfxMessageBox("文件长度不同,但前边数据相同");

//icePubDll@gmail.com可索取支持此函数的icePubDll.dll(20101124版)
jdq_37
2010-11-24 · TA获得超过996个赞
知道小有建树答主
回答量:658
采纳率:0%
帮助的人:954万
展开全部
FILE *p1 = fopen("file1", "rb");
FILE *p2 = fopen("file2", "rb");
int pos=0;

while(fgetc(p1) == fgetc(p2))
{
pos++;
}
printf( "pos = %d\n", pos );
fclose( p1 );
fclsoe( p2 );
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mjxaa11
2010-11-25 · TA获得超过4291个赞
知道小有建树答主
回答量:2016
采纳率:25%
帮助的人:1225万
展开全部
有时间给你看看,晚上再说。
弄出来了,给你看看主程序吧,剩下的我仔细和你说,站内联系。
int main()
{
char p;
char *pFileName = "d:/my.txt";
int Mode=1;
int ErrCode=1;
fstream f1,f2;
OpenFile(pFileName,Mode,ErrCode,f1 );
ErrCode = 0;
OpenFile(pFileName,Mode,ErrCode,f2 );
ModifyVec(Num, Data);

cout<<"结束请摁a\n";
cin>>p;
while (p!='a')
{
cin>>p;
}
return 0;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式