この記事では、C言語を使用してCSVファイルから2行目以降のデータを取得する方法を紹介します。
また、実践的な例として、CSVファイルからデータを取得して表示する方法や特定の条件に合致するデータを抽出する方法も解説します。
初心者の方でも簡単に理解できるように、具体的なサンプルコードを交えて説明します。
目次から探す
2行目からデータを取得する方法
CSVファイルは、データをカンマで区切ったテキストファイルの形式です。
C言語を使用してCSVファイルを読み込み、2行目からデータを取得する方法を説明します。
ヘッダー行をスキップする
CSVファイルの1行目には、通常、データの列に対応するヘッダーが含まれています。
しかし、データを処理する際には、ヘッダー行をスキップしてデータ行から取得することが一般的です。
以下に、ヘッダー行をスキップして2行目からデータを取得するサンプルコードを示します。
#include <stdio.h>
int main() {
FILE *file = fopen("data.csv", "r");
if (file == NULL) {
printf("ファイルを開けませんでした。\n");
return 1;
}
// ヘッダー行をスキップ
char header[256];
fgets(header, sizeof(header), file);
// 2行目以降のデータを取得
char line[256];
while (fgets(line, sizeof(line), file) != NULL) {
// データの処理
printf("%s", line);
}
fclose(file);
return 0;
}
上記のコードでは、fopen
関数を使用してCSVファイルを開き、fgets
関数を使用してヘッダー行を読み飛ばしています。
その後、fgets
関数をループで使用して2行目以降のデータを取得し、処理しています。
2行目以降のデータを取得する
ヘッダー行をスキップした後、2行目以降のデータを取得する方法を説明します。
以下に、2行目以降のデータを取得するサンプルコードを示します。
#include <stdio.h>
int main() {
FILE *file = fopen("data.csv", "r");
if (file == NULL) {
printf("ファイルを開けませんでした。\n");
return 1;
}
// ヘッダー行をスキップ
char header[256];
fgets(header, sizeof(header), file);
// 2行目以降のデータを取得
char line[256];
while (fgets(line, sizeof(line), file) != NULL) {
// データの処理
char *token = strtok(line, ",");
while (token != NULL) {
printf("%s\n", token);
token = strtok(NULL, ",");
}
}
fclose(file);
return 0;
}
上記のコードでは、2行目以降のデータを取得するために、fgets
関数で取得した行をカンマで区切り、strtok
関数を使用してデータを分割しています。
分割されたデータは、ループ内で処理され、表示されます。
以上が、C言語を使用してCSVファイルから2行目以降のデータを取得する方法の説明です。
次のページ実践的なプログラムの作成