最近遇到一些处理表格的东西…顺便复习一下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;
}
};