C++のcsvファイル読み込みメモ

2014年1月20日月曜日

C言語

t f B! P L
とりあえずこの形に落ち着いた

// 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

Translate

このブログを検索

  • ()
  • ()
もっと見る

QooQ