Функция открытия файла - C (СИ)

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

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

Сделал функцию. Запутался с внешними и внутренними переменными. Мне надо сделать FILE *f в main или внешней чтобы после выполнения функции был доступ к f . Как сделать f внутренней для функции, где она используется-не хочется заносить эту переменную во внешние переменные.
void openFile(FILE *f,char *filename,char *mode){
    f=fopen(filename,mode);
    if (f==NULL){
        perror("Error opening file");
        getchar();
        exit (-1);
    }
}
Не понимаю почему работает char *filename и char *mode, когда вызываю функцию так
openFile(f,"pen.dat","ab");
Ведь под "pen.dat" и "ab" строчки не выделено памяти.

Решение задачи: «Функция открытия файла»

textual
Листинг программы
#include <stdio.h>
//void openFile(FILE *fl, char *filename, char *mode);
 
FILE * openFile(char *filename,char *mode)
{
    FILE *f = fopen(filename,mode);
    if (f == NULL)
    {
        perror("Error opening file");
    }
    return f;
}
 
int main()
{
    FILE *f;
    char *name = "test";
    char *mode = "r";
    char buf[100], ch;
    f = openFile(name,mode);
 
    if(fgets(buf,100,f) != NULL)
        printf("%s", buf);
 
}

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


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

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

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