是否有一种非常简单的C ++方法将csv文件解析为向量?

时间:2018-02-09 17:25:00

标签: c++ csv vector

我有一个CSV文件,条目如下:

1, 1234
2, 67890
3, 123987
...

我想将其解析为C ++向量,其中第二列成为向量数据:例如1234,67890,123987 ......

作为一名经验丰富的C程序员,但是C ++新手,下面是我的尝试,它运行正常,但使用了备受mal的sscanf()函数。在仔细阅读stackoverflow.com中,我看到了很多关于类似问题的答案以及非常复杂的解析技术。例如,How can I read and parse CSV files in C++?的推荐解决方案涉及创建一个行类,以及一个包含许多代码行的迭代器类。是不是有一些简单的东西,不需要外部库,可以做到这一点?

这是我的代码:

ifstream myfile (filename);     
if (!myfile.is_open()) {
    printf ("no file\n");
    exit(1);
}

vector<uint32_t> dataVec;
string line;

int val;
while (getline (myfile, line)) {
    if (sscanf (line.c_str(), "%*d , %d", &val) == 1) {
        dataVec.push_back(val);
        count++;
    }
}
myfile.close();

那么,有没有一种简单的方法可以在不使用sscanf()的情况下在纯C ++中执行此操作,而不使用line.c_str()hack?

感谢。

0 个答案:

没有答案