重新设置一个 istringstream 对象

Re-setting an istringstream object

当我运行这段代码时:

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) 在每次迭代中都保持不变。 (程序一开始就把文件读入一个vector,是的,我查了一下,确保数组有对应的数据。)

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

12345 1  0 
12345 1  0 
12345 1  0 

而 file/vector 实际上是说:

12345 1 0
12346 1 25
12543 1 50

我试过各种痕迹,但无法确定问题所在。谢谢!

您应该在iss.str(indexArray.at(i));之前调用iss.clear();以在重用istringstream时清除EOF标志。