Записать во второй файл только числа, кратные 4 - C (СИ)
Формулировка задачи:
1.
В файле записана последовательность целых чисел. Записать во второй файл только числа, кратные 4.2.
Создать файл с таблицей ASCII кодов строчных букв латинского алфавита.Решение задачи: «Записать во второй файл только числа, кратные 4»
textual
Листинг программы
#include <stdio.h> #include <assert.h> int func4(int val) { return val % 4 == 0; } void streamToStream(FILE* from, FILE* to, int (*func)(int)) { int val; while (fscanf(from, "%d", &val) == 1) { if (func(val)) { fprintf(to, "%d ", val); } } } int main() { FILE* from = fopen("from.txt", "r"); FILE* to = fopen("to.txt", "w"); assert(from != NULL); assert(to != NULL); streamToStream(from, to, func4); fclose(to); fclose(from); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и проверки утверждений.
- Определение функции-фильтра
func4
, которая возвращаетtrue
, если число кратно 4. - Определение функции
streamToStream
, которая считывает числа из одного файла и записывает в другой только числа, которые проходят через функцию-фильр. - В функции
main
открываются файлы на чтение и запись. - Выполняется проверка на неравенство
NULL
, чтобы исключить возможные ошибки при открытии файлов. - Вызывается функция
streamToStream
для передачи данных из одного файла в другой с использованием функции-фильраfunc4
. - Файл
to
закрывается, чтобы корректно завершить работу с ним. - Файл
from
закрывается, чтобы корректно завершить работу с ним. - Программа возвращает 0, чтобы корректно завершить работу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д