getline未读入

void generateReport() 
{ /* Add your code here */ 
  // iterate success and fail log

  for(auto it = SuccessLogs.begin(); it != SuccessLogs.end(); it++)
  {
    fstream fin;
    fin.open(*it, ios::in);

    cout << "Report1: " << endl;

    string string_state, line, col, predicate, tmp;
    string str;
    string var;

    vector<string> data;

    while(fin >> tmp)
    {
      data.clear();
      getline(fin, str);//entire row in 'str' //////
      stringstream s(str);
    

      while(getline(s, var, ','))
      {
        cout << "var1: " << var << endl;
        cout << "var2: " << var << endl;
        cout << "var3: " << var << endl;
        cout << "var4: " << var << endl;
        data.push_back(var);

      }
      cout << "Report3: " << endl;
      string_state = data[0];
      line = data[1];
      col = data[2];
      predicate = data[3];

想读入一个类似csv格式的文件,debug发现str是空的,也就是getline(fin, str)中,str没有读进去。

针对你的问题,我写了一个例子,测试是没有问题的,getline可以读取csv文件中的一行数据!