我基本上运行以下代码.此代码逐行执行并获取通用逗号分隔表文件的不同字段.我的问题是,有时"标题"字段可以包含逗号.当它这样时,它被引号括起来:"这,这是我的头衔".但是当我的代码看到逗号时,它只会将其后的所有内容视为下一个字段.并非所有标题都有引号,只有引号括起来.我的问题是,我不知道如何使代码检查这....我怎样才能让我的代码检查这个问题?
非常感谢,你好.这对我的有酬工作意义重大!
while (getline(BookLine, ImpLine, '\n')) // Get each line
{
// create a string stream from the standard string
std::istringstream StrLine(ImpLine);
std::string
bookNumber,
chk,
author,
title,
edition;
// Parse lines
std::getline(StrLine,bookNumber,',');
std::getline(StrLine,chk,',');
std::getline(StrLine,author,',');
std::getline(StrLine,title,',');
std::getline(StrLine,edition,',');
}
Run Code Online (Sandbox Code Playgroud)
做得好很复杂.基本上,你读第一个字符.如果它不是引用,那么你读到下一个逗号.如果是报价,请阅读下一个报价.然后你偷看下一个角色,看看它是否是另一个引用.如果是,则再次读取下一个引号,并将您读到的内容添加到第一次读取的内容的末尾,但没有引号(即引号字符串中的引号由两个连续引号表示).当你得到一个引号后跟一个引号以外的东西(通常应该是一个逗号)时,你就到达了该字段的末尾.
| 归档时间: |
|
| 查看次数: |
2163 次 |
| 最近记录: |