对于我的生活,我似乎无法弄清楚如何正确地做到这一点。
首先,我从csv文件中读取一行。可以说,这条线有 2992854,BOB,3452,394832
我不想把每个结果都读到一个控制台,就像我发现的每个例子一样,我希望它们按顺序排列到这4个变量中:
string line;
ifstream inputFile("input.csv");
std::list<Cramista> Cramistas;
while (!inputFile.eof())
{
int time;
string name;
int location;
int point;
std::vector<std::string> stringArray;
std::size_t position = 0, found;
getline(inputFile, line);
while ((found = line.find_first_of(',', position)) != std::string::npos)
{
stringArray.push_back(line.substr(position, found - position));
position = found + 1;
}
time = stoi(stringArray[0]);
name = stringArray[1];
location = stoi(stringArray[2]);
point = stoi(stringArray[3]);
}
现在,这是我的代码:
{{1}}
更新: 所以,通过我在这里,我能够获得4行中的前3个,并将它们放入数组中,然后我可以将其转换为变量。试图找出如何获得第四部分。
我有2992854,BOB和3452,但我没有394832。
答案 0 :(得分:0)
我的意思是基本上是为了避免使用
“将每个结果读入控制台” cin >> time >> name >> location >> point;
你必须用逗号分隔行(假设它是一个字符串,然后将非字符串数据转换为整数。