GitHub - ben-strasser/fast-cpp-csv-parser: fast-cpp-csv-parser
这个库有点小坑,要注意一下:
比如下边这个csv
”col1“,"col2","col3","col4","col5"
1,2,3,4,5
2,3,3,3,3
4,4,4,4,4
如果想读取col2 和col5,按照正常逻辑代码如下:
# include "csv.h"
int main(){
io::CSVReader<3> in("ram.csv");
in.read_header(io::ignore_extra_column, "col2", "col5");
int col2; double col5;
while(in.read_row(col2, col5)){
// do stuff with the data
}
}
那么运行到 in.read_header(io::ignore_extra_column, "col2", "col5");这行就会报错。
因为程序中以为的表头是 ”col2“ ,代码中设置的表头是col2,少了双引号。
正确的设置方法:
in.read_header(io::ignore_extra_column, "\"col2\"","\"col5\"");
上边的代码对于下边的csv也是不能正确处理的:
<