C ++ getline()来填充向量

时间:2018-01-15 11:04:48

标签: c++ csv getline

我回来了一个新问题。我需要用csv数据填充向量。认为最好的方法是实现一个与csv数据具有相同属性的结构。现在我遇到了getline()问题:

#include "fhir/persistence/hdf/HdfStorageAdapter.h" 
#include <macrologger.h> 
#include <iostream> 
#include <fstream> 
#include <sstream>

std::vector<row_struct> v;
std::string line;
std::ifstream dataInput(path.c_str());
char delimeter(',');
std::string timestampTemp, millisecondsSinceStartTemp, deviceTemp,
    typeTemp, valueTemp;
LOG_DEBUG("Reading data dump...");
int i = 0;
while (std::getline(dataInput, timestampTemp, delimeter)) {

    std::getline(dataInput, millisecondsSinceStartTemp, delimeter);
    std::getline(dataInput, deviceTemp, delimeter);
    std::getline(dataInput, typeTemp, delimeter);
    std::getline(dataInput, valueTemp);

    v[i].timestamp = atoi(timestampTemp.substr(1,
        timestampTemp.size() - 2).c_str());
    v[i].millisecondsSinceStart = atoi(millisecondsSinceStartTemp.substr(1,
        millisecondsSinceStartTemp.size() - 2).c_str());
    v[i].device = atoi(deviceTemp.substr(1, deviceTemp.size() - 2).c_str());
    v[i].value = atof(valueTemp.substr(1, valueTemp.size() - 2).c_str());
    v[i].type = *(typeTemp.substr(1, typeTemp.size() - 2).c_str());


    timestampTemp.clear();
    millisecondsSinceStartTemp.clear();
    deviceTemp.clear();
    typeTemp.clear();
    valueTemp.clear();

    i++;
}

return v;

错误代码:

src/fhir/persistence/hdf/HdfStorageAdapter.cpp:129:9: error: no matching
  function for call to 'getline'
    std::getline(dataInput, valueTemp);

我为&#39; getline()&#39;的每次通话都会得到此信息。 感谢帮助,因为我也进行了广泛的谷歌搜索。

0 个答案:

没有答案