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