// csv file読み込み
vector<vector<string>> my_csv_import(string filename){
ifstream file(filename);
vector<vector<string>> values;
vector<double> nums;
string str;
int p;
while(getline(file, str)){
//コメント箇所は除く
if( (p = str.find("//")) != str.npos ) continue;
vector<string> inner;
//コンマがあるかを探し、そこまでをvaluesに格納
while( (p = str.find(",")) != str.npos ){
inner.push_back(str.substr(0, p));
//strの中身は","の1文字を飛ばす
str = str.substr(p+1);
}
inner.push_back(str);
values.push_back(inner);
}
return values;
}
アクセスは単純にvalues[行][列]で入れる
読み込んだデータの表示
auto& table = my_csv_import("test.csv");
for(auto& line : table){
for(auto& cell : line){
cout << cell << " ";
}
cout << endl;
}
auto宣言の応用方法を初めて知った!
これができるなら便利だねー
数値データで読み込みたい場合は
auoi関数にchar型変換したデータを入れててやればいいっぽい
int x = atoi(values[0][0].c_str());
参考URL
0 件のコメント:
コメントを投稿