在c++中抽象特定的csv列信息

Abstracting Specific csv Column Information in C++

本文关键字:csv 信息 c++ 抽象      更新时间:2023-10-16

我正在从。csv文件中提取数据。我只想要来自E列的数据,但这取决于a列所指定的内容。

也就是说,我想拉双(类型)值给定列A表示"美元Libor/掉期"。

到目前为止,它只输出每一行。我附上了Excel .csv文件的图片供您参考。点击这里查看图片

你怎么能这么做?由于

字符串行;

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

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