小工具:CSV表格读取

最近遇到一些处理表格的东西…顺便复习一下IO流。

struct CSV
{
    vector<vector<string> > v;
    friend istream& operator>>(istream &is,CSV &csv)
    {
        string s;
        for(csv.v.clear(); getline(is,s);)
        {
            csv.v.push_back({});
            for(istringstream sin(s); getline(sin,s,',');)
                csv.v.back().push_back(s);
        }
    }
    friend ostream& operator<<(ostream &os,const CSV &csv)
    {
        for(int i=0; i<csv.v.size(); ++i)
            for(int j=0; j<csv.v[i].size(); ++j)
                os<<csv.v[i][j]<<(j+1<csv.v[i].size()?',':'\n');
        return os;
    }
};

猜你喜欢

转载自blog.csdn.net/w_weilan/article/details/81210749