Записать во второй файл только числа, кратные 4 - C (СИ)

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

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

1.

В файле записана последовательность целых чисел. Записать во второй файл только числа, кратные 4.

2.

Создать файл с таблицей ASCII кодов строчных букв латинского алфавита.

Решение задачи: «Записать во второй файл только числа, кратные 4»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <assert.h>
  3.  
  4. int func4(int val) {
  5.     return val % 4 == 0;
  6. }
  7.  
  8. void streamToStream(FILE* from, FILE* to, int (*func)(int)) {
  9.     int val;
  10.     while (fscanf(from, "%d", &val) == 1) {
  11.         if (func(val)) {
  12.             fprintf(to, "%d ", val);
  13.         }
  14.     }
  15. }
  16.  
  17. int main() {
  18.     FILE* from = fopen("from.txt", "r");
  19.     FILE* to = fopen("to.txt", "w");
  20.  
  21.     assert(from != NULL);
  22.     assert(to != NULL);
  23.  
  24.     streamToStream(from, to, func4);
  25.  
  26.     fclose(to);
  27.     fclose(from);
  28.  
  29.     return 0;
  30. }

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

  1. Подключение необходимых библиотек для работы с файлами и проверки утверждений.
  2. Определение функции-фильтра func4, которая возвращает true, если число кратно 4.
  3. Определение функции streamToStream, которая считывает числа из одного файла и записывает в другой только числа, которые проходят через функцию-фильр.
  4. В функции main открываются файлы на чтение и запись.
  5. Выполняется проверка на неравенство NULL, чтобы исключить возможные ошибки при открытии файлов.
  6. Вызывается функция streamToStream для передачи данных из одного файла в другой с использованием функции-фильра func4.
  7. Файл to закрывается, чтобы корректно завершить работу с ним.
  8. Файл from закрывается, чтобы корректно завершить работу с ним.
  9. Программа возвращает 0, чтобы корректно завершить работу.

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


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

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

13   голосов , оценка 3.769 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы