【C语言程序设计第四版】第十二章 程序设计题 3
3.比较两个文本文件是否相等:比较两个文本文件的内容是否相同,并输出两个文件中第一次出现不同字符内容的行号及列值。
#include <stdio.h> #include <stdlib.h> #include <ctype.h> int main(void){ int row, column; char ch1, ch2; FILE *fp1, *fp2; if ((fp1 = fopen("a1.txt", "r")) == NULL) { printf("Open file error.\n"); exit(0); } if ((fp2 = fopen("a2.txt", "r")) == NULL) { printf("Open file error.\n"); exit(0); } ch1 = fgetc(fp1); ch2 = fgetc(fp2); row = column = 1; while (ch1 == ch2 && !(ch1==EOF && ch2 == EOF)) { column++; if (ch1 == '\n') { row++; column = 1; } ch1 = fgetc(fp1); ch2 = fgetc(fp2); } if (ch1 == EOF && ch2 == EOF) { printf("Files is same.\n"); }else{ printf("Rows id %d, Columns is %d.\n", row, column); } if (fclose(fp1)) { printf("Can not close the file!\n"); exit(0); } if (fclose(fp2)) { printf("Can not close the file!\n"); exit(0); } return 0; }