Переустановка объекта 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 ответ
Решение
Вам следует позвонить iss.clear();
до iss.str(indexArray.at(i));
очистить флаг EOF при повторном использовании istringstream
,