很抱歉有人问我这个问题,但我似乎找不到对我有帮助的解决方案。我正在尝试从文本文件中读取数据,并最终将其存储在一个对象中。
文本文件有 4 个变量,全部用逗号分隔。
我试过按如下方式做到这一点:
string v1, v2, v3, v4;
ifstream afile;
afile.open("thefile.txt");
afile >> v1 >> v2 >> v3 >> v4;
afile.close();
cout << v1 << endl;
cout << v2 << endl;
cout << v3 << endl;
cout << v4 << endl;
文件有多条记录。我现在尝试只执行 1 以确保它有效,但是当它读取数据时,它不会以逗号分隔。
从那里,我想将数据存储到一个对象中。将进行以下工作: Thing* thing1 = new Thing(v1, v2, v3, v4);
虽然,当我读入 5 条记录时,构建上述代码行的最佳方式是什么?由于每个对象都需要一个唯一的名称,有没有一种方法可以使用 for 循环和 vector 进行迭代? IE 对于 (int i = 0; i < 5; i++) { //读入数据 //存储在 vector 中
非常感谢任何提示
最佳答案
CSV 格式比逗号分隔符更复杂。它可以包含您应该相应转义和解释的引号,并且可以允许使用不同的分隔符。如果您的输入文件没有严格格式化,您真的应该使用专用的 CSV 导入/导出库。
分词器类可能会回答您的问题(例如 boost 或 simpler ones 中的类可用)。
关于c++ - 从文件中读取 CSV 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12233596/