Ответ 1
Обычно для "reset" строкового потока вам нужно как reset базовую последовательность для пустой строки с str
, так и для очистки всех флагов с ошибкой и флагов с clear
.
parser.str( std::string() );
parser.clear();
Обычно происходит то, что первый >>
достигает конца строки и устанавливает бит eof, хотя он успешно разбирает первый короткий. Операции над потоком после этого немедленно прекращаются, поскольку бит потока eof все еще установлен.