gpt4 book ai didi

比较两个文件每 1kb 的内容,而不是一个字符一个字符地比较

转载 作者:太空狗 更新时间:2023-10-29 17:24:44 24 4
gpt4 key购买 nike

我有这个功能可以比较来自 2 个文件的字符,并显示发现的错误(行 + 位置)。

 void compareFiles(FILE *fp1, FILE *fp2) 
{
char ch1 = getc(fp1);
char ch2 = getc(fp2);
int error = 0, pos = 0, line = 1;

while (ch1 != EOF && ch2 != EOF)
{
pos++;

if (ch1 == '\n' && ch2 == '\n')
{
line++;
pos = 0;
}

if (ch1 != ch2)
{
error++;
printf("Line Number : %d \tError"
" Position : %d \n", line, pos);
}

ch1 = getc(fp1);
ch2 = getc(fp2);
}

printf("Total Errors : %d\t", error);

但我想获取每 1kb 的数据并将其与 file2 中的另一个数据进行比较,因为那样我想看看有多少这样的 block 是相同的。我该怎么做?

最佳答案

分块读取,所以 fread 而不是 getc

然后比较 block ,所以 strcmp(或 memcmp)不是 char ==

不要忘记您的输入可能有不同的长度(fread 会告诉您),所以我建议在您的 fread 之后以 null 终止两个缓冲区,或者更好但如果长度不同,则会提前失败。

关于比较两个文件每 1kb 的内容,而不是一个字符一个字符地比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56020152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com