Переустановка объекта 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,

Другие вопросы по тегам