Написать функцию, которая открывает файлы и инициализирует указатели типа FILE вне функции - C (СИ)

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

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

Требуется написать функцию, которая открывает файлы и инициализирует указатели типа FILE вне этой функции. В функции preWork файлы открываются нормально, но в main указатели файловые остаются неинициализированы. Как это поправить? Код ниже.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define ERR_OPEN_FILE 1
#define ERR_USE 2
 
#define SIZE_BUF 1024

void preWork(int count, char *input, char *output, FILE *in, FILE *out)
{
    char ch;
 
    if(count != 3){
        puts("use: <name_prog> <input_file> <output_file>");
        exit(ERR_USE);
    } 
 
    in = fopen(input, "rb");
    out = fopen(output, "wb+");
    if(!in || !out){
        puts("Error open file.");
        exit(ERR_OPEN_FILE);
    }
 
}
 
int main(int argc, char *argv[])
 
{
    
    FILE *in = NULL, *out = NULL;
    preWork(argc, argv[1], argv[2], in, out);
 
    return 0;
}

Решение задачи: «Написать функцию, которая открывает файлы и инициализирует указатели типа FILE вне функции»

textual
Листинг программы
void preWork(int count, char *input, char *output, FILE **in, FILE **out){ 
// ...
    *in = fopen(input, "rb");
    *out = fopen(output, "wb+");
}
int main() { 
  // ...
  preWork(argc, argv[1], argv[2], &in, &out);
  // ...
  return 0;
}

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

  1. В функции preWork открываются файлы input и output с помощью функции fopen и сохраняются указатели на эти файлы в переменные *in и *out соответственно.
  2. В функции main вызывается функция preWork с аргументами argc, argv[1] и argv[2], а также указателями на указатели in и out.
  3. После выполнения функции preWork указатели in и out будут содержать открытые файлы.

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


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

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

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