Написать функцию, которая открывает файлы и инициализирует указатели типа 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; }
Объяснение кода листинга программы
- В функции
preWork
открываются файлыinput
иoutput
с помощью функцииfopen
и сохраняются указатели на эти файлы в переменные*in
и*out
соответственно. - В функции
main
вызывается функцияpreWork
с аргументамиargc
,argv[1]
иargv[2]
, а также указателями на указателиin
иout
. - После выполнения функции
preWork
указателиin
иout
будут содержать открытые файлы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д