重新设置istringstream对象

时间:2015-05-31 04:14:16

标签: c++ for-loop vector istringstream

当我运行此代码时:

for (int i = 0; i < indexArray.size(); i++) {

                iss.str(indexArray.at(i));
                iss>>one;
                iss>>two;
                iss>>three;
                cout<<one<<" "<<two<<" "<<" "<<three<<" "<<"\n";
}

istreamstream(iss)在每次迭代时都保持不变。 (该文件在程序开头被读入一个向量。是的,我检查以确保该数组具有相应的数据。)

换句话说,我得到了这个输出:

12345 1  0 
12345 1  0 
12345 1  0 

而文件/向量实际上是:

12345 1 0
12346 1 25
12543 1 50

我尝试了各种痕迹,无法查明问题。谢谢!

1 个答案:

答案 0 :(得分:1)

您应该在iss.clear();之前致电iss.str(indexArray.at(i));,以便在重复使用istringstream时清除EOF标记。