c++ - 从文件中读取 CSV 数据

标签 c++

很抱歉有人问我这个问题,但我似乎找不到对我有帮助的解决方案。我正在尝试从文本文件中读取数据,并最终将其存储在一个对象中。

文本文件有 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 导入/导出库。

分词器类可能会回答您的问题(例如 boostsimpler ones 中的类可用)。

你应该检查 other questions关于这个主题。

关于c++ - 从文件中读取 CSV 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12233596/

相关文章:

c++ - 将 std::uninitialized_fill() 与任何分配器一起使用是否有意义?

c++ - 如何将机器人移动一定距离并仍然管理传感器?

java - JVM 是否为每个对象创建一个互斥锁以实现 'synchronized' 关键字?如果没有,怎么办?

c++ - Visual Studio 2012 和 2010 - kernel32.lib, windows.h

c++ - 通过指向类的指针调用类函数

c++ - SQLite 转义字符串 C++

c++ - 路径设置方法

c++ - 在 for 循环中处理复杂的 send recv 消息

c++ - 优化小型 3d vector 结构以提高性能

c++ - 在 Windows 上编译静态 QT 应用程序