小编Mr *_*rry的帖子

如何解析包含在引用字段中的逗号的 CSV?

我尝试了其他答案中提到的一些修复,但它们对我的输出没有影响。我不打算使用 boost 精神,因为我不确定它是否是满足我需求的最佳选择。此外,类似的帖子不涉及包含逗号的引用材料,这是我目前要解决的最后一个问题。

这是一个 C++ 程序。我使用 CSV 文件作为输入。该文件给出了印章的特征,每个条目有 23 个值(列)。当我输出 rawdata[22] 时,我希望看到第一组数据的最后一个条目。相反,我看到最后一个条目(请愿),然后是下一个印章的第一个条目(2055)。当我在十六进制编辑器中打开它时,我看到这两个词被一个“。”隔开。并且十六进制字符是 0a。我曾尝试将 \r、\n、\r\n 设置为分隔符,但它们不起作用。我不能使用“,”作为分隔符,因为它在字符串中使用,我测试了它是否可以解决我的问题,但它没有。如何分离这些值?

输出:

Petitioned 2055

样本输入:

物种 ID、王国、门、类、顺序、科、属、物种、权威、种下等级、种下名称、种下权威、种群/亚群、同义词、通用名称 (Eng)、通用名称 (Fre)、通用名称 (Spa) ,红色名录状态,红色名录标准,红色名录标准版本,评估年份,人口趋势,请愿
2055,动物,脊索动物,哺乳动物,食肉动物,蛱蝶科,Arctocephalus,australis,"(Zimmermann, 1783)",,,,,Arctophoca australis,South American Fur Seal,Otarie Fourrure Australe,Oso Marino Austral,LC,16. , 增加, N
41664,ANIMALIA,CHORDATA,MAMMALIA,CARNIVORA,OTARIIDAE,Arctocephalus,forsteri,"(Lesson, 1828)",,,,,Arctocephalus australis subspecies forsteri|Arctophoca australis subspecies forsteri,Antipodocephalis subspecies forsteri,"新西兰毛皮海豹,"新西兰毛皮海豹Seal, Black Fur Seal, Long-nosed Fur Seal, South Australia Fur Seal",,,LC,,3.1,2015,increasing,N

我的代码:

#include <iostream>
#include <sstream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;

int main() {
    string line;
    vector<string> rawdata;
    ifstream …
Run Code Online (Sandbox Code Playgroud)

c++ csv parsing

5
推荐指数
1
解决办法
1319
查看次数

标签 统计

c++ ×1

csv ×1

parsing ×1