【发布时间】:2018-02-26 19:17:55
【问题描述】:
我正在解析具有两列的.csv 文件。我正在尝试使用 csv 文件中的 boost tokenizer 解析行,其中行中的一个字段是双引号(例如:1,“test”)。在标记器之后,我在 tok (1,test) 中得到没有双引号的字段。
typedef tokenizer< escaped_list_separator<char>> Tokenizer;
if (getline(inputFile, line))
{
Tokenizer tok(line);
vector< string > vec;
vec.assign(tok.begin(), tok.end());
//Here *(vec.begin() + 1) is printing string- test , without double quote
}
有没有办法用双引号获得第二个字段?
【问题讨论】:
-
确实,双引号被分词器“吃掉”了。但如果不是,您必须自己删除它们。或者,如果您真的很喜欢它们,为什么不自己添加引号呢?所以,请详细说明:为什么引号的存在对您很重要。这有助于我们想出鼓舞人心的想法。
-
我从带有双引号的用户那里获取数据以写入 CSV。所以我需要在向用户展示这些数据时保持不变。我将拥有大量数据,因此我如何自己添加引号将很困难,因为我可能需要记住带有引号的字段。所以我正在寻找即使在标记器之后也可以用双引号维护字段的方法。
标签: c++ boost boost-tokenizer