#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
/*
void SplitString(const string& s, vector<string>& v, const string& c)
{
string::size_type pos1, pos2;
pos2 = s.find(c);
pos1 = 0;
int cnt = 0;
while ((string::npos != pos2) && (cnt++ < 3))
{
v.push_back(s.substr(pos1, pos2 - pos1));
pos1 = pos2 + c.size();
pos2 = s.find(c, pos1);
}
if (pos1 != s.length())
v.push_back(s.substr(pos1));
}
int main()
{
ifstream iFile("test.csv");
string readStr((std::istreambuf_iterator<char>(iFile)), std::istreambuf_iterator<char>());
string output=readStr.c_str();
//cout << readStr.c_str();
vector<string> v,line;
int i=0,size=0;
SplitString(output, v, "\n");
size=v.size();
while(i<size){
SplitString(v[i++], line, ",");
//cout << line[3] << endl;
cout << line.data() << endl;
line.clear();
}
}
*/
//------------修改后-------
void SplitString(const string& s, vector<string>& v, const string& c,int isline)
{
string::size_type pos1, pos2;
pos2 = s.find(c);
pos1 = 0;
if (isline)
{
int cnt = 0;
while ((string::npos != pos2) && (cnt++ < 3))
{
v.push_back(s.substr(pos1, pos2 - pos1));
pos1 = pos2 + c.size();
pos2 = s.find(c, pos1);
}
}
else
{
while (string::npos != pos2)
{
v.push_back(s.substr(pos1, pos2 - pos1));
pos1 = pos2 + c.size();
pos2 = s.find(c, pos1);
}
}
if (pos1 != s.length())
v.push_back(s.substr(pos1));
}
int main()
{
ifstream iFile("test.csv");
string readStr((std::istreambuf_iterator<char>(iFile)), std::istreambuf_iterator<char>());
string output=readStr.c_str();
//cout << readStr.c_str();
vector<string> v;//, line;
int i = 0, size = 0;
SplitString(output, v, "\n",0);
// size = v.size();
// cout << size << endl;
while (i < v.size()) {
SplitString(v[i++], line, ",",1);
if (line[3].find(",") == string::npos){cout << line[3] << endl;}
else{cout << line[3].substr(1,(line[3].length()-2))<< endl;}
line.clear();
}
}