str

De cppreference.com
Saltar a: navegación, buscar

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

Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas
Otros idiomas