C言語でCSVを読み込んで2行目からデータを取得する方法を解説

この記事では、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行目以降のデータを取得する方法の説明です。

1 2

この記事のページ一覧
  1. 現在のページ
目次から探す