C++读取 CSV
我在读取 CSV 时遇到了一些问题。我有多种类型的数据,所以我不知道如何让它工作:
string, string, bool, bool, int
我不能简单地使用 >>
读取数据,因为分隔符不是空格。 scanf
不起作用,因为它需要人工输入,而不是文件输入,getline
只读取字符串,还包含一些 \n
字符原因。
我怎样才能正确读取我的csv?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 getline。有一个重载,其中传递的第三个参数可以是分隔符的字符。只需将其全部放入循环中即可
You CAN use getline. There's an overload where the third argument passed can be a char for the delimiter. Just throw it all in a loop
另一个选项(不过,通常不推荐用于 C++)是
fscanf
。你是对的,scanf
对你没有好处,但是fscanf
是它基于文件的等效项。另一种通常在 C 中使用但在 C++ 中不强烈推荐的规范解决方案是继续使用
getline
,然后使用strtok
或一个简单的解析器来解析每一行。Another option (which isn't typically recommended for C++, though), is
fscanf
. You're right thatscanf
is no good for you, butfscanf
is its file-based equivalent.Another canonical solution typically employed in C, but which isn't so strongly recommended in C++, is to go ahead and use
getline
, and then usestrtok
or a simple parser to parse each line.