我的 C 练习需要逐行比较 2 个文本文件 - 这意味着
我的计划是:
一、使用 fgets() 函数读取字符串时的一行
其次,使用 sscanf() 函数解析(忽略空格)字符串,然后比较它们。
但是,我遇到的问题是代码只读取了字符串(行)的第一个单词,所以我得到了不正确的结果。但是现在当我更改我的代码时,它总是给我“不同的文件”。请帮我。我的逻辑错了><这是我的代码
int comp_line(FILE *fp1, FILE *fp2){
char l1[1024];
char l2[1024];
char w1[1024];
char w2[1024];
char *c1;
char *c2;
/*initialize*/
c1 = fgets(l1,1024,fp1);
c2 = fgets(l2,1024,fp2);
sscanf(w1,"%1023s",l1);
sscanf(w2,"%1023s",l2);
while (c1 != NULL && c2 != NULL && strcmp(w1,w2) == 0)
{
c1 = fgets(l1,1024,fp1);
c2 = fgets(l2,1024,fp2);
sscanf(w1,"%1023s",l1);
sscanf(w1,"%1023s",l1);
if(c1 != NULL && c2 == NULL)
{
printf("EOF 2");
return 0;
}
if(c1 == NULL && c2 != NULL)
{
printf("EOF 1");
return 0;
}
}
if(strcmp(w1,w2) == 0)
{
printf("\nfiles are equal");
return 0;
}
else
{
printf("\nfiles different");
return 1;
}
return 0;
}
非常感谢!