【C言語】ファイルを読み込んで配列に値を格納する方法

この記事では、C言語でファイルのデータを配列に格納する方法について解説します。

初心者の方にもわかりやすく説明していますので、ぜひ参考にしてみてください。

目次から探す

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

ファイルの読み込み

まずは、ファイルを読み込む方法です。

C言語では、ファイルを操作するためにFILE型のポインタを使用します。

以下のようなコードを使って、ファイルを開いて読み込むことができます。

#include <stdio.h>
int main() {
    FILE *fp;  // ファイルポインタの宣言
    char ch;
    // ファイルを開く
    fp = fopen("data.txt", "r");
    // ファイルから1文字ずつ読み込む
    while ((ch = fgetc(fp)) != EOF) {
        // 読み込んだ文字を表示するなどの処理を行う
        printf("%c", ch);
    }
    // ファイルを閉じる
    fclose(fp);
    return 0;
}

上記のコードでは、fopen関数を使ってファイルを開き、fgetc関数を使って1文字ずつ読み込んでいます。

EOFはファイルの終端を表す特殊な値であり、ファイルの終わりまで読み込むまでループを繰り返します。

読み込んだ文字は、printf関数を使って表示することができます。

データの配列への格納

配列にデータを格納するためには、まず配列の要素数を決める必要があります。

ファイルのデータ数がわかっている場合は、その数に合わせた配列を宣言することができますが、不定であることがほとんどなので、大きめのサイズを指定することをおすすめします。

以下のコードは、ファイルから整数データを読み込んで配列に格納する例です。

#include <stdio.h>
#define MAX_SIZE 100  // 配列の最大要素数
int main() {
    FILE *fp;
    int data[MAX_SIZE];
    int i = 0;
    // ファイルを開く
    fp = fopen("data.txt", "r");
    // ファイルから整数データを読み込んで配列に格納する
    while (fscanf(fp, "%d", &data[i]) != EOF) {
        i++;
    }
    // ファイルを閉じる
    fclose(fp);
    // 配列の中身を表示する
    for (int j = 0; j < i; j++) {
        printf("%d ", data[j]);
    }
    return 0;
}

上記のコードでは、fscanf関数を使ってファイルから整数データを読み込み、配列に格納しています。

fscanf関数は、指定したフォーマットに従ってデータを読み込むことができます。

この例では、整数データを読み込むために%dというフォーマットを使用しています。

配列に格納したデータは、後で必要に応じて処理することができます。

上記のコードでは、配列の中身を表示するためにprintf関数を使っていますが、他の処理を行うことも可能です。

以上が、C言語でファイルのデータを配列に格納する方法の解説です。

目次から探す