我正在尝试将文本文件中的字段提取到字符串向量中。 在文件的每一行中,各字段之间用制表符分隔。 问题是缺少某些字段,例如:
第一名\第二名\第三名\ n
\ t2nd名称\ t3rd名称\ n
第一名\ t \ t第三名\ n
第一个名字\ t \ t \ n
第二行中缺少第一字段,第三行中缺少第二字段,最后一行中第二和第三字段都丢失。标签仍然在那里,以分隔缺少的字段。
我尝试了以下代码,基本上使用getline(定界符\ n)将每一行提取为字符串,然后将每个字符串解析为子字符串(使用定界符\ t的getline):
ifstream inputFile(filename);
string tempLine;
vector <string> tempstr;
while ( getline(inputFile, tempLine, '\n') ) {
stringstream ss(tempLine);
string tempField;
while (getline(ss, tempField, '\t')) {
tempstr.push_back(tempField);
}
}
问题在于它无法提取接近行尾的丢失的第三字段,但是对于第一和第二位置的丢失字段是可以的。 我究竟做错了什么? 预先感谢。