假设我有以下 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/