【cpp】csvファイルを読み込む
csvを読み込む。
大抵は1行ずつ読み込んで処理する方がいい気がするけど、
とりあえず、ファイルの内容を全部読み込んでstring型の2次元配列に放り込むバージョン。
read_csv.h
#ifndef __READ_CSV_H__ #define __READ_CSV_H__ #include <string> #include <vector> using namespace std; typedef vector<string> StringArray; typedef vector<StringArray> StringArray2D; void readCSV(const string &file_path, StringArray2D &file_contents); void splitByDelim(const string &src, StringArray &dst, const char &delim = ','); #endif // __READ_CSV_H__
read_csv.cpp
#include "read_csv.h" #include <fstream> #include <sstream> void readCSV(const string &file_path, StringArray2D &file_contents) { file_contents.clear(); ifstream ifs(file_path); string line; while(!ifs.eof()) { getline(ifs, line); StringArray splitted; splitByDelim(line, splitted); file_contents.push_back(splitted); } ifs.close(); } void splitByDelim(const string &src, StringArray &dst, const char &delim) { dst.clear(); stringstream ss(src); string buf; while( getline(ss, buf, delim) ) { dst.push_back(buf); } }