【C言語】ファイルから読み込んだデータを線形探索する方法を解説

目次から探す

ファイルから読み込んだデータを線形探索する方法

ファイルからデータを読み込む

ファイルからデータを読み込むには、まずファイルを開く必要があります。

fopen関数を使用してファイルを開き、ファイルポインタを取得します。

ファイルポインタを使用して、fscanf関数fgets関数を使ってデータを読み込むことができます。

読み込んだデータは、適切な変数に格納する必要があります。

線形探索のアルゴリズム

線形探索は、データの先頭から順番に比較していく探索方法です。

ファイルから読み込んだデータを線形探索する場合、以下の手順を踏みます。

  1. ファイルからデータを読み込む。
  2. 読み込んだデータと目的のデータを比較する。
  3. 一致するデータが見つかった場合、その位置を記録する。
  4. ファイルの終端まで繰り返し、一致するデータがなかった場合は見つからなかったことを示す。

線形探索はシンプルな方法ですが、データの量が多い場合には効率が悪いという欠点もあります。

サンプルコード

#include <stdio.h>
int main() {
    FILE *file;
    int target;
    int data;
    int position = -1;
    file = fopen("data.txt", "r");
    if (file == NULL) {
        printf("ファイルを開けませんでした。\n");
        return 1;
    }
    printf("探索するデータを入力してください: ");
    scanf("%d", &target);
    while (fscanf(file, "%d", &data) != EOF) {
        if (data == target) {
            position = ftell(file) - sizeof(int);
            break;
        }
    }
    if (position != -1) {
        printf("データが見つかりました。位置: %d\n", position);
    } else {
        printf("データが見つかりませんでした。\n");
    }
    fclose(file);
    return 0;
}

※ サンプルコードでは、data.txtという名前のテキストファイルからデータを読み込みます。

※ ファイルが見つからない場合や、データが見つからなかった場合には適切なエラーメッセージを表示します。

実行結果の例

探索するデータを入力してください: 7
データが見つかりました。位置: 24

C言語を使用してファイルからデータを読み込み、線形探索する方法について解説しました。

ファイルを開くためにはfopen関数を使用し、データの読み込みにはfscanf関数fgets関数を使用します。

線形探索はシンプルな方法ですが、データの量が多い場合には効率が悪いため、他の探索アルゴリズムを検討することも重要です。

目次から探す