我从.csv文件中提取数据。我只想要来自E列的数据,但这取决于通过A列指定的内容。
也就是说,我想拉出双(类型)值,因为列A表示" USD Libor / Swap"。
截至目前,它只输出每一行。我已附上Excel .csv文件的图片供您参考。click here for image
你怎么能这样做?感谢
string line;
ifstream ycratel; //create the stream object
ycratel.open("YC Rate Levels.csv");
if (ycratel.is_open())
{
while (getline(ycratel,line))
{
getline(ycratel, line);
cout << line << endl;
}
ycratel.close();
}
else cout << "Unable to open file.";
答案 0 :(得分:0)
std::getline
函数在这些情况下非常有用:
std::string field_text;
std::getline(ycratel, field_text, ','); // Read until ','
与if
声明合并:
if (field_text == "USD Libor/Swap")
{
跳过4列
std::getline(ycratel, field_text, ','); // field 2
std::getline(ycratel, field_text, ','); // field 3
std::getline(ycratel, field_text, ','); // field 4
阅读第5栏
std::getline(ycratel, field_text);
}
现场文本的评估留作OP的练习。
注意:由于只有5个字段,因此for循环可能会更复杂,然后展开循环。
此答案假定文件为CSV - 逗号分隔值。 std::getline
的分隔符字段可以针对其他分隔符进行调整。