この記事では、C言語を使ってCSVファイルを読み込む方法を解説します。
CSVファイルのオープンからデータの分割、利用方法、型変換、ファイルのクローズまで、具体的な手順をわかりやすく説明します。
初心者の方でも簡単に理解できるように、サンプルコードや注意点も紹介します。
CSVファイルの読み込み方法
CSV(Comma Separated Values)ファイルは、データをカンマで区切って保存するテキストファイルの形式です。
C言語を使用してCSVファイルを読み込む方法を解説します。
ファイルのオープン
まず、CSVファイルを読み込むためには、ファイルをオープンする必要があります。
ファイルをオープンするには、fopen()関数
を使用します。
#include <stdio.h>
int main() {
FILE *file;
file = fopen("data.csv", "r");
if (file == NULL) {
printf("ファイルをオープンできませんでした。\n");
return 1;
}
// ファイルの読み込み処理
fclose(file);
return 0;
}
上記の例では、fopen()関数
を使用してdata.csv
というファイルを読み込みモード(r
)でオープンしています。
ファイルの読み込み
ファイルをオープンしたら、fgets()関数
を使用してファイルからデータを読み込むことができます。
#include <stdio.h>
int main() {
FILE *file;
file = fopen("data.csv", "r");
if (file == NULL) {
printf("ファイルをオープンできませんでした。\n");
return 1;
}
char line[256];
while (fgets(line, sizeof(line), file) != NULL) {
// 1行ずつのデータの処理
}
fclose(file);
return 0;
}
上記の例では、fgets()関数
を使用して1行ずつデータを読み込んでいます。
fgets()関数
は、指定した文字数(上記の例では256文字)までのデータを読み込みます。
strtok()関数を使ったデータの分割
CSVファイルでは、データがカンマで区切られています。
C言語では、strtok()関数
を使用して文字列を指定の区切り文字で分割することができます。
#include <stdio.h>
#include <string.h>
int main() {
FILE *file;
file = fopen("data.csv", "r");
if (file == NULL) {
printf("ファイルをオープンできませんでした。\n");
return 1;
}
char line[256];
while (fgets(line, sizeof(line), file) != NULL) {
char *token;
token = strtok(line, ",");
while (token != NULL) {
// 分割されたデータの処理
token = strtok(NULL, ",");
}
}
fclose(file);
return 0;
}
上記の例では、strtok()関数
を使用してカンマで区切られたデータを分割しています。
strtok()関数
は、第1引数に分割する文字列を、第2引数に区切り文字を指定します。
strtok()関数
は、分割されたデータの先頭ポインタを返し、次のデータがない場合はNULL
を返します。
読み込んだデータの利用方法
CSVファイルから読み込んだデータは、文字列として扱われます。
必要に応じて、データを適切な型に変換する必要があります。
#include <stdio.h>
#include <string.h>
int main() {
FILE *file;
file = fopen("data.csv", "r");
if (file == NULL) {
printf("ファイルをオープンできませんでした。\n");
return 1;
}
char line[256];
while (fgets(line, sizeof(line), file) != NULL) {
char *token;
token = strtok(line, ",");
while (token != NULL) {
// 分割されたデータの利用方法
int data = atoi(token); // 文字列を整数に変換
printf("%d\n", data);
token = strtok(NULL, ",");
}
}
fclose(file);
return 0;
}
上記の例では、atoi()関数
を使用して文字列を整数に変換しています。
他のデータ型に変換する場合は、適切な関数を使用してください。
ファイルのクローズ
ファイルの読み込みが終わったら、fclose()関数
を使用してファイルをクローズする必要があります。
#include <stdio.h>
int main() {
FILE *file;
file = fopen("data.csv", "r");
if (file == NULL) {
printf("ファイルをオープンできませんでした。\n");
return 1;
}
// ファイルの読み込み処理
fclose(file);
return 0;
}
上記の例では、fclose()関数
を使用してファイルをクローズしています。
ファイルをクローズすることで、メモリの解放や他のプログラムからのアクセス(書き込み)ができるようになります。
以上が、C言語でCSVファイルを読み込む方法の解説です。
ファイルのオープン、読み込み、データの分割、データの利用、データの型変換、ファイルのクローズの手順を順番に実行することで、CSVファイルのデータを取得することができます。