C ++阅读CSV

时间:2011-03-08 19:43:53

标签: c++ parsing csv format

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

string, string, bool, bool, int

我不能简单地使用>>读取数据,因为deliminator不是空格。 scanf不起作用,因为它需要人工输入,而不是文件输入,getline只读取字符串,并且出于某种原因还包括\n字符。

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

2 个答案:

答案 0 :(得分:5)

您可以使用getline。有一个重载,传递的第三个参数可以是分隔符的char。把它全部放在循环中

答案 1 :(得分:2)

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

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