重新设置一个 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标志。
当我运行这段代码时:
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标志。