stringstream
<sstream>
define un tipo llamado stringstream
que nos permite tratar un string como un stream, eso nos permite la inserción y la extracción desde y a strings de la misma manera que podríamos hacer con cin
y cout
. De forma que podríamos extraer de un string:
string mystring ("21");
int age;
stringstream(mystring) >> age;
Esto es equivalente a aquello que hicimos en el apartado anterior de cin
, pero tomando el string mystring
como stream fuente.
Veamos un ejemplo más completo en el que usaremos la variable mystring
como buffer de entrada, a la que insertaremos los valores que leamos por teclado y desde la que asignaremos los valores a las variables internas.
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main ()
{
string mystring;
float price=0;
int quantity=0;
cout << "Introduce price: ";
getline (cin,mistring);
stringstream(mistring) >> precio;
cout << "Introduce quantity: ";
getline (cin,mistring);
stringstream(mistring) >> quantity;
cout << "Final price: " << price*quantity << endl;
return 0;
}
Ejercicios
- Repita los ejercicios anteriores pero combinando lo que hemos visto de stringstreams. Usando un string
stdbuffer
como buffer intermediario entre la entrada y las variables internas.- Pruebe a insertar valores en el string utilizado como buffer. Consejo: puedes obtener más documentación sobre los stringstreams en la siguiente referencia de C++