Jon*_*ter 5 c++ csv vector std
我有一个函数可以逐行读取 CSV 文件。对于每一行,它将把该行分割成一个向量。执行此操作的代码是
std::stringstream ss(sText);
std::string item;
while(std::getline(ss, item, ','))
{
m_vecFields.push_back(item);
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,除非它读取最后一个值为空的行。例如,
text1,tex2,
Run Code Online (Sandbox Code Playgroud)
我希望它返回一个大小为 3 的向量,其中第三个值只是空。然而,它只是返回一个大小为 2 的向量。我该如何纠正这个问题?
bool addEmptyLine = sText.back() == ',';
/* your code here */
if (addEmptyLine) m_vecFields.push_back("");
Run Code Online (Sandbox Code Playgroud)
或者
sText += ','; // text1, text2,,
/* your code */
assert(m_vecFields.size() == 3);
Run Code Online (Sandbox Code Playgroud)