当我运行此代码时:
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
我尝试了各种痕迹,无法查明问题。谢谢!
答案 0 :(得分:1)
您应该在iss.clear();
之前致电iss.str(indexArray.at(i));
,以便在重复使用istringstream
时清除EOF标记。