Сначала необходимо создать stringstream
, чтобы сделать несколько проходов над тем, что вы прочитали в input
.input
само по себе является просто string
, а не stream
.#include <sstream>
, а затем после чтения input
создайте stringstream
с помощью:
std::stringstream stream (input);
Затем вы можете читать с помощью первого цикла while
, но второй while
не будет работать, поскольку потокпозиция остается в конце строки строк после установки первых while
и eofbit
.
Вам нужно вызвать stream.seekg(0)
, чтобы «перемотать» файл и очистить eofbit
, см .: std :: basic_istream :: seekg перед вторым while
циклом.