2017-01-22 3 views
-4

Как читать из файла с помощью этой функции?Как я могу прочитать из файла в C

#include <stdio.h> 

char* read_from_file (const char* filename, size_t length) 
{ 
    //I have this so far 
    fp = fopen(filename,"r"); // read mode 

    if(fp == NULL) 
    { 
     perror("Error while opening the file.\n"); 
     exit(EXIT_FAILURE); 
    } 

    /* what goes in here? */ 

    return NULL; 
} 

Я пытаюсь выполнить следующие указания:

  • Он выделяет обугленный буфер длины размера + 1.

  • Открывает имя файла файла в режиме только для чтения. Когда он не открывается файл, он освобождает буферную память

  • Он считывает символы длины в буфер, вставляет нулевой символ (\ 0) в последнюю позицию, закрывает файл и возвращает указатель на буфер. Когда ему не удается прочитать символы длины, он освобождает буферную память, закрывает файл и возвращает NULL.

+1

Итак, какую функцию вы используете для выделения памяти (буфер представляет собой кусок памяти)? Лучше открыть файл и выделить память только в том случае, если файл успешно открыт. Вы также должны проверить, что память выделена успешно, конечно. Какие функции вы можете использовать для чтения блоков данных? Какая функция используется для освобождения памяти? Какая функция используется для закрытия файла? Все это очень прямолинейно. –

+0

Похоже, это очень простой вопрос. Проверьте 'malloc',' fread' и 'fclose' – BLUEPIXY

ответ

0

Вы в значительной степени включен в ответ на ваш вопрос:

  1. Выделяет обугленный буфер размера length +1.

  2. Открыть файл filename, в режиме только для чтения. Если вы не открыли файл, освободите буфер и верните

  3. Прочитать length символов в буфер, вставить нулевой символ (\ 0) в последнюю позицию, закрыть файл и вернуть указатель в буфер.

  4. Если вы не смогли прочитать length символов, освободите буферную память, закройте файл и верните NULL.

Смежные вопросы