0

我需要cmp在 C 中制作类似于 Unix 的实用程序。 cmp 比较两个文件并输出不同的第一个字符的数量。

cmp [-s] file1 file2 [SKIP1] [SKIP2]

我做得很好,但是跳过字符我遇到了一些麻烦。 SKIP1用于file1n 个字符后的比较,SKIP2用于n 个字符file2后的比较。

部分代码:

...
while ((fgets(filebuff,  MAXLINE, file1)) != NULL && 
       (fgets(filebuff2, MAXLINE, file2)) != NULL)
{
    ++linepos;
    same = compare_str(filebuff, filebuff2); // my function that return 0 if equal and change pos of first diff element 
    if (same != 0)
    {
        fclose(file1);
        fclose(file2);
        printf("differ: char %i, line %i\n",charpos,linepos);
        return 1;
    }
}
fclose(file1);
fclose(file2);
return 0;

我不知道如何与从 SKIP1 或 SKIP2 开始进行比较。

while ((fgets(filebuff, MAXLINE, file1))!=NULL && (fgets(filebuff2, MAXLINE, file2)) != NULL)

此代码逐行读取文件,并且每个文件中的每两行都发送到函数。我不想改变我的比较功能。我需要发送已经剪切的字符串。也许从 n 位置开始循环fgets(),但我不知道如何。

4

0 回答 0