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

C言語でcsvファイルを2行目から読み込む方法について解説します。

目次

C言語でcsvファイルを2行目から読み込む方法

csvファイルを開く

まず、csvファイルを開くためにはfopen()関数を使用します。以下のように記述します。

FILE *fp;
fp = fopen("sample.csv", "r");

ここでは、sample.csvという名前のcsvファイルを読み込みモード("r")で開いています。また、FILE型のポインタ変数fpにファイルポインタを代入しています。

1行目を読み飛ばす

次に、1行目を読み飛ばしますが、これは一旦適当な場所でfgets関数を呼んで1行分の読み込みを行います。

char buf[1024];
fgets(buf, sizeof(buf), fp);

ここでは、一時的な文字列バッファとしてbuf配列を用意し、fgets()関数で1行分のデータを読み込んでいます。ただし、この1行目のデータは使わないため無視しても構いません。

2行目からデータを読み込む

次に、2行目以降のデータを読み込む処理です。以下のように記述します。

char buf[1024];
while (fgets(buf, sizeof(buf), fp) != NULL) {
    // データ処理
}

ここでは、先程と同じく一時的な文字列バッファとしてbuf配列を用意し、fgets()関数で1行分のデータを読み込んでいます。

whileループを行う前に一度fgets関数で1行文読み取っているため、ここでは2行目の文字列から取得されるようになっています。

ファイルを閉じる

最後に、開いたcsvファイルを閉じる処理です。以下のように記述します。

fclose(fp);

これでcsvファイルから2行目以降のデータが正しく読み込めるようになりました。

完全なコード例は以下の通りです。

#include <stdio.h>

int main() {
    FILE *fp;
    char buf[1024];

    fp = fopen("sample.csv", "r");
    if (fp == NULL) {
        printf("Failed to open file.\n");
        return -1;
    }

    // 1行目はヘッダー情報なので無視する
    fgets(buf, sizeof(buf), fp);

    // 2行目以降からデータ処理する
    while (fgets(buf, sizeof(buf), fp) != NULL) {
        // データ処理
        printf("%s", buf);
    }

    fclose(fp);

    return 0;
}

終わりに

以上で、C言語でcsvファイルを2行目から読み込む方法について解説してきました。

csvファイルは1行目がヘッダー業になっていることが多いので、2行目からデータを読み込むことはよくあります。

この記事がC言語プログラミング初心者の方々にとって役立つ情報となれば幸いです。

目次