C++:将 CSV 存储在容器中
我有一个包含逗号分隔值的 std::string ,我需要将这些值存储在一些合适的容器中,例如数组、向量或其他容器。是否有任何内置函数可以让我做到这一点?或者我需要为此编写自定义代码?
I have a std::string
that contains comma separated values, i need to store those values in some suitable container e.g. array, vector or some other container. Is there any built in function through which i could do this? Or i need to write custom code for this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果您愿意并且能够使用 Boost 库,Boost Tokenizer 非常适合这项任务。
那看起来像:
If you're willing and able to use the Boost libraries, Boost Tokenizer would work really well for this task.
That would look like:
您基本上需要使用
,
作为分隔符来标记字符串。 这个早期的 Stackoverflow 线程将为您提供帮助。这里是另一篇相关帖子。
You basically need to tokenize the string using
,
as the delimiter. This earlier Stackoverflow thread shall help you with it.Here is another relevant post.
我认为标准库中没有任何可用的内容。我会采用类似的方法 -
strtok
基于,
定界符对字符串进行标记。push_back
向量的值。如果您对 boost 库感到满意,请检查此线程。
I don't think there is any available in the standard library. I would approach like -
,
delimeter usingstrtok
.atoi
function.push_back
the value to the vector.If you are comfortable with boost library, check this thread.
使用 AX 解析器生成器,您可以轻松解析 csv 字符串,例如
免责声明:我没有测试上面的代码,它可能有一些表面错误。
Using AXE parser generator you can easily parse your csv string, e.g.
Disclaimer: I didn't test the code above, it might have some superficial errors.