fputc関数とfgetc関数

 今回から、ファイルの読み込み・書き込みに関する命令をご紹介します。今回は、fputc関数fgetc関数について説明します。どちらも、putchar関数とgetchar関数と同じように、一文字だけファイルから読み込む(ファイルに書き込む)ための関数です。書き込むのがfputc関数、読み込むのがfgetc関数です。

 まずは前回例示したサンプルコードを、もう一度確認して下さい。。

#include <stdio.h>

int main(int argc, const char * argv[])
{
    
    // insert code here...
    
    // ファイルのオープン
    FILE *fp;
    fp = fopen("testfile1.txt", "w");
    
    // ファイルに書き込み
    fputc('a', fp);
    
    // ファイルのクローズ
    fclose(fp);
    
    return 0;
}

 実行すると「a」と書かれたtestfile1.txtが出来ています。ここで、以下のプログラムを実行してみて下さい。

#include <stdio.h>

int main(int argc, const char * argv[])
{
    
    // insert code here...
    
    // ファイルのオープン
    FILE *fp;
    if((fp = fopen("testfile1.txt", "r")) == NULL) {
        printf("ファイルを開けませんでした。");
    } else {
        
        // ファイルから読み込み
        char ch;
        ch = fgetc(fp);
        printf("%c", ch);
        
        // ファイルのクローズ
        fclose(fp);
        
    }
    
    return 0;
}

 画面に「a」と表示されることを確認して下さい。(Tips:ファイルが無かった場合など、読み込みの場合、エラーが発生する可能性があるので、エラーになる場合は、この後の処理を行わないように記述することが推奨されています。)

 応用例として、getchar関数やputchar関数で行ったように、ファイルから読み込んだものが、ファイルの末端(EOF)になるまでwhileでループさせて処理する、という書き方も出来ます。余裕のある方は、どう書けば良いか考えてみると良いでしょう。

■スポンサーリンク

このページの先頭へ