[C con Clase] stringstream y los epacios en blancos en las cadenas

Steven Richard Davidson stevenrichard.davidson en gmail.com
Jue Sep 20 00:01:46 CEST 2007


Hola Pedro,

On 9/19/07, Pedro Mateo <pedromateoa en gmail.com> wrote:
> saludo a todos
>
> tengo este codigo
> *********************************************
> #include <iostream>
> #include <sstream>
>
> using namespace std;
>
> main(){
>        stringstream x;
>        x<<"bonito todo me parece bonito!";
>        string r;
>         x>>r;
>         cout<<r<<endl; // este es mi problema:esto devueve solo "bonito"
>                                // y no presenta nada despues de un espacio
> vacio
> }
> ************************************************
> debe ser una tonteria pero he buscado y no encuentro la solucion del
> problema

No hay solución, porque no existe ningún problema. El operador >> se
sobrecarga con este comportamiento. Si lo que quieres hacer es extraer
y guardar la cadena, con espacios incluidos, en un objeto de tipo
'string', entonces usa la función (global) 'getline()'. Esto sería,

stringstream ssCadena;
ssCadena << "bonito todo me parece bonito!";

string sCad;
getline( ssCadena, sCad );
cout << sCad << endl;

Espero que esto aclare la duda.

Steven




Más información sobre la lista de distribución Cconclase