Проверка файлов на идентичность - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Нужно написать программу - "Напишите программу, которая определяет, является ли два набора PRVY.TXT и DRUHY.TXT же содержание. Программа не считывать данные из стандартного ввода. Если файлы имеют одинаковое содержание, программа показывает файлы идентичны, если файлы имеют одинаковое содержание, программа печатает количество различных символов с последующим пробелом, число различных символов в файле и завершится к концу строки. I-tу характер в одном файле следует рассматривать как отличается от I-го символа во второй группе, если существуют оба знака (т.е. установлены не меньше, чем Х символов) и соответствующие признаки не равны. Если файлы неравной длины, выход программы перечислены еще одно направление, содержащий доклад одного из файлов Х символов, где Х является количество символов, который является одним из файлов."

Ukážka súboru PRVY.TXT: ahoj Ukážka súboru DRUHY.TXT: ahujx * Výstup pre ukážkové súbory: Pocet roznych znakov: 1 Jeden zo suborov je dlhsi o 3 znakov Помоги те пожалуйста, очень нужна ваша помощь!!!! Заранее СПАСИБО!!!

Решение задачи: «Проверка файлов на идентичность»

textual
Листинг программы
#include <stdio.h>
#include <assert.h>
 
int main() {
    FILE* f1, * f2;
    int ch1 = 0, ch2 = 0, cnt = 0, tail = 0;
 
    assert((f1 = fopen("PRVY.TXT", "r")));
    assert((f2 = fopen("DRUHY.TXT", "r")));
 
    while ((ch1 != EOF) && (ch2 != EOF)) {
        ch1 = fgetc(f1);
        ch2 = fgetc(f2);
 
        cnt += (ch1 != ch2);
    }
 
    if (ch1 != ch2) {
        cnt--;
        tail = 1;
        f1 = (ch2 == EOF) ? f1 : f2;
 
        while ((ch1 = fgetc(f1)) != EOF) {
            tail++;
        }
    }
 
    if ((cnt == 0) && (tail == 0)) {
        printf("equals\n");
    }
    else {
        printf("Pocet roznych znakov = %d\n", cnt);
        if (tail) {
            printf("Jeden zo suborov je dlhsi o %d znakov\n", tail);
        }
    }
 
    return 0;
}

Объяснение кода листинга программы

Код сравнивает два текстовых файла построчно и подсчитывает количество различий между ними. Если файлы идентичны, выводится сообщение equals. Если есть различия, выводится количество различий и сообщение о том, что один из файлов длиннее другого на определенное количество символов.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы