2017-01-22 13 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の文字バッファーを割り当てます。

  • ファイルfilenameを読み取り専用モードで開きます。それは、ファイルを開くために失敗した場合、それがバッファメモリに

  • の割り当てを解除するには、バッファに長さの文字を読み込み、最後の位置にNULL文字(\ 0)を挿入、ファイルを閉じて、バッファへのポインタを返します。長さの文字の読み込みに失敗すると、バッファメモリの割り当てを解除し、ファイルを閉じてNULLを返します。

+1

したがって、どの機能を使用してメモリを割り当てますか(バッファはメモリのチャンクです)。ファイルを開き、ファイルが正常に開かれた場合にのみメモリを割り当ててください。もちろん、メモリが正常に割り当てられたことを確認する必要があります。どの機能を使用してデータのブロックを読み取ることができますか?メモリを解放するために使用される関数はどれですか?ファイルを閉じるために使用される関数はどれですか?これはすべて非常に簡単です。 –

+0

これは非常に基本的な問題のようです。 'malloc'、' fread'、 'fclose'をチェックしてください。 – BLUEPIXY

答えて

0

あなたはかなりのあなたの質問で答え含ま:

  1. をサイズlength +1の文字バッファーを割り当てます。

  2. ファイルfilenameを読み取り専用モードで開きます。ファイルのオープンに失敗した場合は、バッファの割り当てを解除して、バッファに最後の位置にヌル文字(\ 0)を挿入し、ファイルを閉じてバッファにポインタを戻して、

  3. を返します。

  4. length文字の読み込みに失敗した場合は、バッファメモリの割り当てを解除し、ファイルを閉じてNULLを返します。

関連する問題