print mystr biblioteca c++ stringstream

c++ - mystr - Cómo borrar stringstream?



stringstream mystr (1)

Esta pregunta ya tiene una respuesta aquí:

stringstream parser; parser << 5; short top = 0; parser >> top; parser.str(""); //HERE I''M RESETTING parser parser << 6; //DOESN''T PUT 6 INTO parser short bottom = 0; parser >> bottom;

¿Por qué no funciona?


Por lo general, para ''restablecer'' una cadena de caracteres, necesita restablecer la secuencia subyacente a una cadena vacía con str y borrar cualquier error y eof banderas con clear .

parser.str( std::string() ); parser.clear();

Normalmente, lo que sucede es que el primer >> llega al final de la cadena y establece el bit de eof, aunque analiza correctamente el primer corto. Las operaciones en la transmisión después de esto fallan inmediatamente porque el bit de eof de la ruta aún está configurado.