用C ++抽象特定的csv列信息

时间:2016-08-30 18:10:17

标签: c++ csv abstraction

我从.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.";

1 个答案:

答案 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的分隔符字段可以针对其他分隔符进行调整。