Написать функцию, которая открывает файлы и инициализирует указатели типа 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
будут содержать открытые файлы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д