CでUnixのようなユーティリティを作成する必要がありcmp
ます.cmpは2つのファイルを比較し、異なる最初の文字の数を出力します。
cmp [-s] file1 file2 [SKIP1] [SKIP2]
私はすべてうまくいきましたが、文字をスキップすると、いくつかの問題が発生します。
n 文字後SKIP1
の比較に使用され、n 文字後の比較に使用されます。file1
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)
このコードは、ファイルを 1 行ずつ読み取り、すべてのファイルから両方の行を読み取り、関数に送信します。比較機能を変更したくありません。カット済みの紐を送る必要があります。n の位置からループを開始するかもしれfgets()
ませんが、方法がわかりません。