关于字符串流分隔符缺少文本文件中的最后一行

时间:2015-10-16 06:54:45

标签: c++ stringstream

当我以下列方式从文本文件中读取数据" [1,2,3,4,5] [1,2,3,4,5]" 我在以下代码中使用逗号作为分隔符时得到1 2 3 4 5 2 3 4 5的结果。

while (getline (ss, data, ','))
    {
        stringstream fs (data);
        int d = 0;
        fs >> d;
        orderVector.push_back(d);
    }

我的猜测是,这是由于5和1之间没有逗号,但我不知道如何解决此问题。

1 个答案:

答案 0 :(得分:0)

如果您不打算进行任何验证(没有迹象表明您认为旧代码中有必要),那么您可以这样做:

while (true)
{
    int d;
    if (ss >> d)
        orderVector.push_back(d);
    else
    {
        if (ss.eof()) break;
        ss.clear();
        ss.ignore();
    }
}