C言語でのデータの保存と読み込み方法


  1. テキストファイルへのデータの保存と読み込み:

    • データをテキストファイルに保存するには、fopen関数を使用してファイルを開きます。その後、fprintf関数を使用してデータをファイルに書き込みます。
    • データをテキストファイルから読み込むには、fopen関数を使用してファイルを開きます。その後、fscanf関数を使用してデータをファイルから読み取ります。

    以下は、整数の配列をテキストファイルに保存し、読み込む例です:

    #include <stdio.h>
    void saveData(int data[], int size, const char* filename) {
       FILE* file = fopen(filename, "w");
       if (file != NULL) {
           for (int i = 0; i < size; i++) {
               fprintf(file, "%d ", data[i]);
           }
           fclose(file);
           printf("Data saved successfully.\n");
       } else {
           printf("Error: Failed to open the file.\n");
       }
    }
    void loadData(int data[], int size, const char* filename) {
       FILE* file = fopen(filename, "r");
       if (file != NULL) {
           for (int i = 0; i < size; i++) {
               fscanf(file, "%d", &data[i]);
           }
           fclose(file);
           printf("Data loaded successfully.\n");
       } else {
           printf("Error: Failed to open the file.\n");
       }
    }
    int main() {
       int myData[] = {10, 20, 30, 40, 50};
       int dataSize = sizeof(myData) / sizeof(myData[0]);
       const char* filename = "data.txt";
       saveData(myData, dataSize, filename);
       loadData(myData, dataSize, filename);
       return 0;
    }
  2. バイナリファイルへのデータの保存と読み込み:

    • バイナリファイルにデータを保存するには、fwrite関数を使用します。データをバイナリファイルから読み込むには、fread関数を使用します。

    以下は、整数の配列をバイナリファイルに保存し、読み込む例です:

    #include <stdio.h>
    void saveData(int data[], int size, const char* filename) {
       FILE* file = fopen(filename, "wb");
       if (file != NULL) {
           fwrite(data, sizeof(int), size, file);
           fclose(file);
           printf("Data saved successfully.\n");
       } else {
           printf("Error: Failed to open the file.\n");
       }
    }
    void loadData(int data[], int size, const char* filename) {
       FILE* file = fopen(filename, "rb");
       if (file != NULL) {
           fread(data, sizeof(int), size, file);
           fclose(file);
           printf("Data loaded successfully.\n");
       } else {
           printf("Error: Failed to open the file.\n");
       }
    }
    int main() {
       int myData[] = {10, 20, 30, 40, 50};
       int dataSize = sizeof(myData) / sizeof(myData[0]);
       const char* filename = "data.bin";
       saveData(myData, dataSize, filename);
       loadData(myData, dataSize, filename);
       return 0;
    }

これらはC言語でデータを保存し、読み込むための一般的な方法の一部です。他にも、C言語でデータを保存し読み込む方法は他にもいくつかあります。例えば、CSVファイルやJSONファイルを使用する方法や、データベースにデータを保存する方法などがあります。必要に応じてこれらの方法を使用することもできます。

また、エラーハンドリングも重要な要素です。上記の例では、ファイルのオープンに失敗した場合にエラーメッセージを表示しています。実際のアプリケーションでは、エラーハンドリングが適切に行われるようにする必要があります。