【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;
    
}

 

posted @ 2021-09-29 11:47  就是想学习  阅读(72)  评论(0编辑  收藏  举报