C++读取 CSV

发布于 2024-10-21 04:34:11 字数 278 浏览 1 评论 0 原文

我在读取 CSV 时遇到了一些问题。我有多种类型的数据,所以我不知道如何让它工作:

string, string, bool, bool, int

我不能简单地使用 >>读取数据,因为分隔符不是空格。 scanf 不起作用,因为它需要人工输入,而不是文件输入,getline 只读取字符串,还包含一些 \n 字符原因。

我怎样才能正确读取我的csv?

Im having a bit of trouble reading CSVs. I have multiple types of data, so i am not sure how to get this to work:

string, string, bool, bool, int

I cant simply use >> to read in the data since the deliminator is not whitespace. scanf doesnt work, since it needs a human input, not file input, getline only reads in strings and also includes the \n char for some reason.

how can i read my csv properly?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

帅冕 2024-10-28 04:34:11

您可以使用 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

氛圍 2024-10-28 04:34:11

另一个选项(不过,通常不推荐用于 C++)是 fscanf 。你是对的,scanf 对你没有好处,但是 fscanf 是它基于文件的等效项。

另一种通常在 C 中使用但在 C++ 中不强烈推荐的规范解决方案是继续使用 getline,然后使用 strtok 或一个简单的解析器来解析每一行。

Another option (which isn't typically recommended for C++, though), is fscanf. You're right that scanf is no good for you, but fscanf 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 use strtok or a simple parser to parse each line.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文