我有一个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?
感谢。