Введение
В этом лабораторном занятии мы научимся обращать содержимое файла с использованием языка программирования C. Мы будем считывать содержимое входного файла символ за символом и записывать его в обратном порядке в выходной файл.
Примечание: Вам нужно самостоятельно создать файл
~/project/main.c, чтобы практиковаться в программировании и узнать, как компилировать и запускать его с помощью gcc.
cd ~/project
## create main.c
touch main.c
## compile main.c
gcc main.c -o main
## run main
./main
Открытие входного и выходного файлов
На первом шаге мы откроем входной и выходной файлы с использованием функции fopen(). Мы создадим два указателя на файлы для этих файлов, один для входного файла и один для выходного.
FILE *input_file, *output_file;
input_file = fopen("input.txt", "r");
output_file = fopen("output.txt", "w");
Подсчет количества символов во входном файле
На этом шаге мы подсчитаем количество символов во входном файле с использованием функций fseek() и ftell().
Мы установим позицию в файле в конец файла с помощью fseek(input_file, 0, SEEK_END); и получим текущую позицию в файле с помощью ftell(input_file);.
Это даст нам общее количество символов во входном файле.
fseek(input_file, 0, SEEK_END);
long total_characters = ftell(input_file);
Копирование символов из входного файла в выходной файл в обратном порядке
Теперь, когда у нас есть общее количество символов во входном файле, мы скопируем символы в обратном порядке в выходной файл.
Мы будем перебирать входной файл символ за символом и записывать каждый символ в выходной файл с использованием функции fputc().
Мы начнем с последнего символа во входном файле и будем двигаться назад с помощью fseek(input_file, -1L, SEEK_CUR);.
for (long i = total_characters-1; i >= 0; i--) {
fseek(input_file, i, SEEK_SET);
char c = fgetc(input_file);
fputc(c, output_file);
}
Закрытие входного и выходного файлов
На последнем шаге мы закроем входной и выходной файлы с использованием функции fclose().
fclose(input_file);
fclose(output_file);
Резюме
В этом практическом занятии (лабораторной работе) мы научились обращать содержимое файла с использованием языка программирования C. Мы открыли входной и выходной файлы, посчитали количество символов во входном файле, скопировали символы в обратном порядке в выходной файл и закрыли входной и выходной файлы.



