C ++解析变量制表符字符串

时间:2018-06-22 13:28:48

标签: string parsing tabs

我正在尝试将文本文件中的字段提取到字符串向量中。 在文件的每一行中,各字段之间用制表符分隔。 问题是缺少某些字段,例如:

第一名\第二名\第三名\ 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);
    }
}

问题在于它无法提取接近行尾的丢失的第三字段,但是对于第一和第二位置的丢失字段是可以的。 我究竟做错了什么? 预先感谢。

0 个答案:

没有答案