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

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

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

Имеются два текстовых файла с одинаковым числом строк. Выяснить, совпадают ли их строки, Если нет, то получить номер первой строки, в которой эти файлы отличаются друг от друга.

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

textual
Листинг программы
#include <stdio.h>
#include <assert.h>
 
int main()
{
   int ch1 = 0, ch2 = 0;
   int line = 1;
 
   FILE* f1 = fopen("file1.txt", "r"); assert(f1);
   FILE* f2 = fopen("file2.txt", "r"); assert(f2);
 
   while (!feof(f1) && !feof(f2) && (ch1 == ch2))
   {
      ch1 = fgetc(f1);
      ch2 = fgetc(f2);
 
      if ((ch1 == '\n') && (ch2 == '\n'))
      {
         line++;
      }
   }
 
   if (ch1 == ch2)
   {
      printf("files are the same");
   }
   else
   {
      printf("difference in line %d", line);
   }
 
   fclose(f2);
   fclose(f1);
 
   return 0;
}

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

В этом коде происходит сравнение двух текстовых файлов. Вот список действий, которые происходят в коде:

  1. Создаются две переменные типа int: ch1 и ch2, которые используются для хранения символов из файлов.
  2. Создается переменная типа int: line, которая используется для подсчета числа строк в файлах.
  3. Открываются два файла: f1 и f2, для чтения.
  4. Используя assert, проверяется корректность открытия файлов.
  5. В цикле while происходит чтение символов из файлов f1 и f2 и сравнение этих символов. Цикл продолжается, пока не достигнут конец файла или пока символы в файлах совпадают.
  6. Если символы в файлах совпадают и оба символа являются символом новой строки '\n', то значение переменной line увеличивается.
  7. После выхода из цикла while проверяется, совпадают ли последние прочитанные символы.
  8. Если символы совпадают, то выводится сообщение файлы одинаковые.
  9. Если символы не совпадают, то выводится сообщение различие в строке номер %d, где %d - это значение переменной line.
  10. Файлы закрываются с помощью функции fclose.
  11. Возвращается 0, что означает успешное выполнение программы.

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


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

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

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