用c语言实现linux下两个文件内容比较,谁给帮帮忙 15

两个.bin文件,应该是二进制代码吧... 两个.bin文件,应该是二进制代码吧 展开
 我来答
goulgold
2012-11-05
知道答主
回答量:1
采纳率:0%
帮助的人:1572
展开全部
不知道你说的linux下两个文件内容是什么,如果是ascii码文件,即文本文件的话,可以尝试用文件操作相关函数,给你一段源代码:
#include <stdio.h>
#include <stdlib.h>

int main(){

FILE * f1 = fopen("dd.txt","r");/* 改为实际文件名 */
FILE * f2 = fopen("bb.txt","r");

char c1 = fgetc(f1);
char c2 = fgetc(f2);

while(!feof(f1) && !feof(f2)){

if(c1 != c2){printf("NO");system("pause");return 0;}
c1 = fgetc(f1);
c2 = fgetc(f2);
}

if(c1==EOF&&c2==EOF) /* 判断两个文件是否都到结尾 */
printf("YES");
else
printf("NO");
printf("\n");

fclose(f1);
fclose(f2);

system("pause");
return 0;
}
追问
是.bin的文件,一个512k
北岛生歌
2019-12-25 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:25%
帮助的人:801万
展开全部
我看了一下clibuwei的回答,回答还不错,有一点我要说明“b)c语言中的变量可以在使用之前的任何位置进行定义”,这句话是对的。有一个作用域问题。就拿答案的例子来说:main(){inti=0;printf("%d",i);intj=1;printf("%d",i);}//这个程序确实是错误的。因为j在main函数体里面,即作用域为main函数main(){inti=0;printf("%d",i);{intj=1;printf("%d",j);}}//注意我加了一个花括号,这个程序是可以的,变量j的作用域为printf("%d",j);//希望能够帮助到你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dufenglei908
2012-11-05 · TA获得超过6372个赞
知道大有可为答主
回答量:1449
采纳率:60%
帮助的人:774万
展开全部
简单的可以自己写,就是字符串比对
完善点的,可以参考Linux,diffutil里面的diff命令的源码,绝对够完善,很多Linux比较工具都是基于它完成的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
eheart0
2012-11-05
知道答主
回答量:17
采纳率:0%
帮助的人:5.1万
展开全部
文件打开的方式以二进制打开 就可以了
fd = fopen (“文件名”,“rb”);
然后读出来的内容比较 就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式