想找到两个文件中第一个不相同的行,但每次结果都是第一行,求大神解答!!!

voidfilecomp(FILE*fp1,FILE*fp2){charline1[MAXLINE],line2[MAXLINE];char*lp1,*lp2;do{lp... void filecomp(FILE *fp1,FILE *fp2)
{
char line1[MAXLINE],line2[MAXLINE];
char *lp1,*lp2;
do
{
lp1=fgets(line1,sizeof(line1),fp1);
lp2=fgets(line2,sizeof(line2),fp2);
if(lp1==line1 && lp2==line2)
{
if(strncmp(line1,line2,MAXLINE)!=0)
{
printf("first difference line:\nfile1:%s\nfile2:%s\n",line1,line2);
lp1=lp2=NULL;
}
}
else if(lp1!=line1 && lp2==line2)
{
printf("end of file.");
}
else if(lp1==line1 && lp2!=line2)
{
printf("end of second file2.");
}
}while(lp1==line1 && lp2==line2);
}
展开
 我来答
jianxia2k
2013-10-07 · TA获得超过399个赞
知道小有建树答主
回答量:365
采纳率:82%
帮助的人:199万
展开全部

怀疑是你要比较的两个文件确实不一样。是不是文件的行结束符不一样或有不可见字符?printf改成

printf("first difference line:\nfile1:[%s]\nfile2:[%s]\n",line1,line2);

试试


我试了你的代码,两个完全相同的文件,没有任何输出,修改了某一行,确实显示该行。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式