【C言語】fopenでファイルを開いてfgetsで読み込む方法

この記事では、C言語でファイルを開いて読み込む方法について解説します。

具体的には、fopen関数fgets関数の使い方や、エラーハンドリングの例を紹介します。

目次から探す

ファイルを開いて読み込むプログラムの例


#include <stdio.h>
int main() {
    FILE *file;
    char line[100];
    // ファイルを開く
    file = fopen("sample.txt", "r");
    if (file == NULL) {
        printf("ファイルを開けませんでした。\n");
        return 1;
    }
    // ファイルから1行ずつ読み込む
    while (fgets(line, sizeof(line), file) != NULL) {
        printf("%s", line);
    }
    // ファイルを閉じる
    fclose(file);
    return 0;
}

上記のプログラムは、ファイルを開いて1行ずつ読み込む方法の例です。

まず、stdio.hヘッダーファイルをインクルードします。

これは、ファイル操作に必要な関数や定数を提供します。

次に、FILE型ポインタ変数fileと、文字列を格納するための配列lineを宣言します。


FILE *file;
char line[100];

次に、ファイルを開きます。

fopen関数を使用して、ファイルを読み込みモード(r)で開きます。

ファイルが正常に開けなかった場合は、エラーメッセージを表示してプログラムを終了します。


file = fopen("sample.txt", "r");
if (file == NULL) {
    printf("ファイルを開けませんでした。\n");
    return 1;
}

その後、fgets関数を使用して、ファイルから1行ずつ読み込みます。

fgets関数は、指定したサイズの文字列を指定したファイルから読み込みます。

読み込んだ行は、配列lineに格納されます。

fgets関数NULLを返すまで、繰り返し処理を行います。


while (fgets(line, sizeof(line), file) != NULL) {
    printf("%s", line);
}

最後に、ファイルを閉じます。

fclose関数を使用して、開いたファイルを閉じます。


fclose(file);

ファイルを閉じるのを忘れると、アプリケーションが終了するまでファイルがロックされたままになり、異常終了した場合はPCの再起動を行うまでロックされる可能性もあるので気をつけましょう。

以上が、ファイルを開いて読み込むプログラムの例です。

実行すると、指定したファイルの内容が1行ずつ表示されます。

エラーハンドリングの例

エラーハンドリングは、プログラムが予期しないエラーに遭遇した場合に、適切な処理を行うための手法です。

ファイルを開いて読み込むプログラムでも、ファイルが存在しない場合や読み込みエラーが発生した場合など、エラーが発生する可能性があります。

このセクションでは、エラーハンドリングの例を紹介します。

まず、ファイルを開く際にエラーチェックを行います。

fopen関数は、ファイルを開く際にエラーが発生した場合にはNULLを返します。

そのため、fopenの戻り値がNULLであるかどうかをチェックすることで、ファイルのオープンに成功したかどうかを判断することができます。

以下に、ファイルを開いて読み込むプログラムの例を示します。


#include <stdio.h>
int main() {
    FILE *file;
    char buffer[100];
    // ファイルを開く
    file = fopen("sample.txt", "r");
    if (file == NULL) {
        printf("ファイルを開くことができませんでした。\n");
        return 1;
    }
    // ファイルから1行ずつ読み込む
    while (fgets(buffer, sizeof(buffer), file) != NULL) {
        printf("%s", buffer);
    }
    // ファイルを閉じる
    fclose(file);
    return 0;
}

このプログラムでは、fopen関数でファイルを開いた後、NULLチェックを行っています。

もしファイルを開くことができなかった場合には、エラーメッセージを表示してプログラムを終了します。

また、fgets関数を使ってファイルから1行ずつ読み込み、その内容を表示しています。

fgets関数は、指定したバッファに指定したサイズまでの文字列を読み込みます。

読み込んだ文字列がNULLでない限り、繰り返し処理を行います。

最後に、ファイルを閉じるためにfclose関数を呼び出しています。

ファイルを開いたら必ず閉じるようにしましょう。

以上が、ファイルを開いて読み込むプログラムにおけるエラーハンドリングの例です。

エラーチェックを適切に行い、予期しないエラーに対処することが重要です。

1 2

この記事のページ一覧
  1. 現在のページ
目次から探す