我需要cmp
在 C 中制作类似于 Unix 的实用程序。 cmp 比较两个文件并输出不同的第一个字符的数量。
cmp [-s] file1 file2 [SKIP1] [SKIP2]
我做得很好,但是跳过字符我遇到了一些麻烦。
SKIP1
用于file1
n 个字符后的比较,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()
,但我不知道如何。