Сравнить два текстовых файла - 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; }
Объяснение кода листинга программы
В этом коде происходит сравнение двух текстовых файлов. Вот список действий, которые происходят в коде:
- Создаются две переменные типа int: ch1 и ch2, которые используются для хранения символов из файлов.
- Создается переменная типа int: line, которая используется для подсчета числа строк в файлах.
- Открываются два файла: f1 и f2, для чтения.
- Используя assert, проверяется корректность открытия файлов.
- В цикле while происходит чтение символов из файлов f1 и f2 и сравнение этих символов. Цикл продолжается, пока не достигнут конец файла или пока символы в файлах совпадают.
- Если символы в файлах совпадают и оба символа являются символом новой строки '\n', то значение переменной line увеличивается.
- После выхода из цикла while проверяется, совпадают ли последние прочитанные символы.
- Если символы совпадают, то выводится сообщение
файлы одинаковые
. - Если символы не совпадают, то выводится сообщение
различие в строке номер %d
, где %d - это значение переменной line. - Файлы закрываются с помощью функции fclose.
- Возвращается 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д