str
De cppreference.com
Sintaxis:
#include <sstream> void str( const string& s ); string str();
El método str() puede usarse de dos maneras: para obtener una copia de la cadena manipulada por el flujo, o para colocar una nueva cadena en el flujo.
Para obtener la cadena de un flujo:
ostringstream stream1; stream1 << "Testing!" << endl; cout << stream1.str();
Para colocar una nueva cadena en un flujo:
istringstream stream1; string string1 = "25"; stream1.str(string1);
Tomar nota que esto resetea los punteros de lectura y escritura (get y put), lo que puede causar confusión cuando se inicializa un stringstream a ser usado en operaciones en las dos direcciones.
str() es muy útil cuando se necesita limpiar y resetear el estado de un flujo para que se pueda reutilizar:
- !: Aviso: el método clear() **no elimina** los contenidos de la cadena subyacente, sólo limpia el estado del objeto ios relacionado por medio de basic_ios::clear().
istringstream stream1; float num; // usemos este flujo string string1 = "25 1 3.235\n1111111\n222222"; stream1.str(string1); while( stream1 >> num ) cout << "num: " << num << endl; // mostramos los números, uno por línea // podemos volver a utilizar el mismo flujo con str() string string2 = "1 2 3 4 5 6 7 8 9 10"; stream1.clear(); // ¡no hace lo que Ud. piensa! Ojo, aún así es requerido para limipar el estado de entrada/salida del flujo stream1.str(string2); while( stream1 >> num ) cout << "num: " << num << endl; // mostramos los números, uno por línea
Relacionado: rdbuf, Flujos de Entrada/Salida