c++ - 从 CSV 中读取并存储在 Vector 中

标签 c++ csv omnet++

假设我有以下 csv 文件:

10.0.0.26
10.0.0.30
10.0.0.34
10.0.0.38
...
...

考虑我有一个 vector :

std::vector<L3Address> destAddresses;

我想要一段代码,它将读取上面的 csv 文件直到最后一个地址,并将每个地址存储在上面的 vector 中。

std::ifstream  data("data.csv");
while(//till the end of file){
//read from csv
//write to vector
}

我尝试了以下方法:

std::ifstream  data("data.csv");
while(std::getline(data,std::string value){
destAddresses.push_back(value);
}

但这不知何故不起作用。

最佳答案

我们去看看L3Address的文档(注 1)。在这里我们可以看到一个函数 bool L3Address::tryParse(const char * str),它将尝试将 C 字符串解释为地址,并告诉您它是否成功。

std::ifstream  data("data.csv");
std::string line;
while (std::getline(data, line) {
    L3Address addr;
    if (addr.tryParse(line.c_str())) {
        destAddresses.push_back(addr);
    }
    else
    {
        // TODO: handle malformed address
    }
}

注意 1:生成此文档的工具将其格式化得非常糟糕,因此您无法亲自访问此处是情有可原的。

关于c++ - 从 CSV 中读取并存储在 Vector 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49901087/

相关文章:

python - 如何将 CSV 文件转换为 python 字典

OMNeT++ .ini 文件参数

c++ - 无法访问注册表项

c++ - 轻量级 Windows 应用程序的最佳开源示例是什么?

asp.net - 在 ASP.NET 问题中使用 WPF DLL 程序集

java - 创建带有带逗号的超链接的 CSV

arrays - 如何使用 JQ 在点后将最后一列的数字舍入到小数点后两位?

c++ - Omnet中循环队列的初始化

c++ - OMNET++ SDN网络错误

c++ - 使用函数指针在类之间传递数据