目次から探す
二次元配列を使用してCSVデータを格納する方法
CSV(Comma-Separated Values)ファイルは、データをカンマで区切って保存するテキストファイルの形式です。
C言語では、CSVファイルのデータを二次元配列に格納することができます。
この記事では、二次元配列を使用してCSVデータを格納する方法について説明します。
まず、CSVファイルを読み込むためには、ファイルを開いてデータを読み込む必要があります。
以下のコードは、ファイルを開き、データを読み込むための基本的な手順です。
#include <stdio.h>
int main() {
FILE *file = fopen("data.csv", "r");
if (file == NULL) {
printf("ファイルを開けませんでした。\n");
return 1;
}
// ファイルのデータを読み込む処理
fclose(file);
return 0;
}
上記のコードでは、fopen
関数を使用して”data.csv”というファイルを読み込みモード(“r”)で開いています。
ファイルが正常に開けなかった場合は、エラーメッセージを表示してプログラムを終了します。
次に、ファイルからデータを読み込む処理を追加します。
CSVファイルでは、各行のデータがカンマで区切られています。
以下のコードは、ファイルから1行ずつデータを読み込み、カンマで区切って二次元配列に格納する例です。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_ROWS 100
#define MAX_COLS 100
int main() {
FILE *file = fopen("data.csv", "r");
if (file == NULL) {
printf("ファイルを開けませんでした。\n");
return 1;
}
char data[MAX_ROWS][MAX_COLS];
int row = 0;
while (fgets(data[row], sizeof(data[row]), file) != NULL) {
// 改行文字を削除する
data[row][strcspn(data[row], "\n")] = '\0';
// カンマで区切ってデータを格納する
char *token = strtok(data[row], ",");
int col = 0;
while (token != NULL) {
// データを二次元配列に格納する
strcpy(data[row][col], token);
col++;
// 次のトークンを取得する
token = strtok(NULL, ",");
}
row++;
}
fclose(file);
return 0;
}
上記のコードでは、fgets
関数を使用してファイルから1行ずつデータを読み込んでいます。
読み込んだデータは、改行文字を削除してからカンマで区切り、二次元配列に格納されます。
strtok
関数を使用してカンマで区切ったデータをトークンとして取得し、strcpy
関数を使用して二次元配列に格納しています。
このようにして、CSVファイルのデータを二次元配列に格納することができます。
格納したデータは、後の処理で使用することができます。