int main() { vector<vector<string>> data; ifstream fs("test.csv"); string line; while( getline(fs, line, '\n')) { istringstream ss(line); string s; vector<string> ddata; while(getline(ss, s, ',')) { ddata.push_back(s); } data.push_back(ddata); } for(int i = 0; i < 10; i++){ istringstream buf(data[i][2]); double num; buf >> num; cout << num << endl; } }
csvファイルから数値を格納した配列を生成するために,いろいろ調べて見よう見まねで書いてみた.なんでこれでdouble numが返ってくるのかよくわかってない.動くからいいけど.(これ見た人から叱られてしまうだろうか)わかんないところをちゃんと言うと,istringstreamでbufに入れた文字列をbuf>>numでdoubleにキャスト?できる理由がわからない.