2015-05-31 3 views
0

Когда я запускаю этот код:Re-настройки объекта 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.

+0

Спасибо, в этом была проблема! –

Смежные вопросы