文件是一个简单的内存块,可以存储信息,我们只关心文本。
在这个程序中,我们将比较两个文件并报告发生的不匹配。这些文件几乎相同,但可能有一些字符不同。此外,程序将返回第一个不匹配发生的文件的行和位置。
算法step 1: open both the file with pointer at the starting.step 2: fetch data from file as characters one by one.step 3: compare the characters. if the characters are different then return the line and position of the error character.
example 的中文翻译为:示例#include<stdio.h>#include<string.h>#include<stdlib.h>void comparefiles(file *file1, file *file2){ char ch1 = getc(file1); char ch2 = getc(file2); int error = 0, pos = 0, line = 1; while (ch1 != eof && ch2 != eof){ pos++; if (ch1 == '
' && ch2 == '
'){ line++; pos = 0; } if (ch1 != ch2){ error++; printf("line number : %d \terror" " position : %d
", line, pos); } ch1 = getc(fp1); ch2 = getc(fp2); } printf("total errors : %d\t", error);}int main(){ file *file1 = fopen("file1.txt", "r"); file *file2 = fopen("file2.txt", "r"); if (file1 == null || file2 == null){ printf("error : files not open"); exit(0); } comparefiles(file1, file2); fclose(file1); fclose(file2); return 0;}
输出// content of the filesfile1 : hello!welcome to tutorials pointfile2: hello!welcome to turoials pointline number: 2 error position: 15total error : 1
以上就是c程序比较两个文件并报告不匹配的详细内容。