【C言語】fscanf関数を使ってファイルを読み込む方法

目次から探す

fscanf関数の応用

fscanf関数は、ファイルからデータを読み込む際に非常に便利な関数です。

これまでに学んだ基本的な使い方に加えて、ファイルのデータを変数や配列に格納する方法についても解説します。

ファイルのデータを変数に格納する方法

まずは、ファイルからデータを読み込んで変数に格納する方法を見ていきましょう。

以下の例では、ファイルから整数値を1つ読み込んで、変数に格納しています。

#include <stdio.h>
int main() {
    FILE *fp;
    int num;
    // ファイルを開く
    fp = fopen("data.txt", "r");
    // ファイルから整数値を読み込む
    fscanf(fp, "%d", &num);
    // 読み込んだ値を表示する
    printf("読み込んだ値: %d\n", num);
    // ファイルを閉じる
    fclose(fp);
    return 0;
}

上記の例では、fopen関数を使ってファイルを開き、fscanf関数を使ってファイルから整数値を読み込んでいます。

fscanf関数の第1引数にはファイルポインタ、第2引数には書式指定子、第3引数以降には読み込んだ値を格納する変数のアドレスを指定します。

ファイルのデータを配列に格納する方法

次に、ファイルからデータを読み込んで配列に格納する方法を見ていきましょう。

以下の例では、ファイルから整数値を複数個読み込んで、配列に格納しています。

#include <stdio.h>
#define MAX_SIZE 100
int main() {
    FILE *fp;
    int numbers[MAX_SIZE];
    int i, count;
    // ファイルを開く
    fp = fopen("data.txt", "r");
    // ファイルから整数値を読み込む
    count = 0;
    while (fscanf(fp, "%d", &numbers[count]) != EOF) {
        count++;
    }
    // 読み込んだ値を表示する
    printf("読み込んだ値: ");
    for (i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");
    // ファイルを閉じる
    fclose(fp);
    return 0;
}

上記の例では、fscanf関数をループさせることで、ファイルから整数値を複数個読み込んでいます。

fscanf関数EOF(End of File)を返すまでループを繰り返し、読み込んだ値を配列に格納しています。

fscanf関数はファイルの終端に到達するとEOFを返すため、この仕様を応用することで行数や値の数がわからないファイルでも正しく全て読み込むことが可能です。

以上が、fscanf関数の応用的な使い方についての解説です。

ファイルからデータを変数や配列に格納することで、より柔軟なデータ処理が可能になります。

是非、実際に試してみてください。

1 2

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