我需要在 C++ 中加载和使用 CSV 文件数据。在这一点上,它实际上可以只是一个逗号分隔的解析器(即不用担心转义新行和逗号)。主要需要一个逐行解析器,每次调用该方法时,它都会为下一行返回一个向量。
我发现这篇文章看起来很有希望:http: //www.boost.org/doc/libs/1_35_0/libs/spirit/example/fundamental/list_parser.cpp
我从未使用过Boost’s Spirit,但我愿意尝试。但只有在没有更直接的解决方案时,我才会忽略。
原文由 User1 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您不关心转义逗号和换行符,
而且你不能在引号中嵌入逗号和换行符(如果你不能转义……)
那么它只有大约三行代码(OK 14 -> 但它只有 15 行来读取整个文件)。
我只想创建一个代表一行的类。
然后流入该对象:
但是通过一些工作,我们可以在技术上创建一个迭代器:
现在我们在 2020 年,让我们添加一个 CSVRange 对象: