Pregunta

    

Esta pregunta ya tiene una respuesta aquí:

    
            
  •              ¿Cómo se borra una variable stringstream?                                      8 respuestas                          
  •     
    
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?

¿Fue útil?

Solución

Por lo general a 'reset' un stringstream que necesita para restablecer tanto la secuencia subyacente a una cadena vacía con str y para despejar cualquier fallar 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 EF, aunque se analiza con éxito el primer corto. Las operaciones en la corriente después de esto inmediatamente porque fallan poco EF de la corriente sigue estando ajustado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top