tengo este código,¿Por qué las cadenas de caracteres rdbuf() y str() me dan una salida diferente?
int main()
{
std::string st;
std::stringstream ss;
ss<<"hej hej med dig"<<std::endl;
std::getline(ss,st,' ');
std::cout <<"ss.rdbuf()->str() : " << ss.rdbuf()->str();
std::cout <<"ss.rdbuf() : " << ss.rdbuf();
return 0;
}
mi Realizar esta salida
ss.rdbuf() -> str(): hej hej Med cavar
ss.rdbuf(): hej med dig
¿Pero por qué es eso? Es que debido a la definición de ostreams del operador < str() me da una salida diferente. En mi opinión, la salida debería ser la misma incluso si he usado getline.
Oh. El hecho de que no lo he buscado en uno de mis costosos libros de C++ es que estoy de vacaciones, así que solo tengo Google y no pude encontrar un sitio que explicara el comportamiento del operador de una manera que yo entendiera. De hecho, pensé que Getline eliminó los tokens con el delim de la secuencia. – mslot
No utilicé uno de los costosos libros de C++. Sino que creo que este comportamiento no se ha especificado en rbuf() y se ha comenzado a buscar en estándar para este operador de sobrecarga <<. – bayda
http://ra.dkuug.dk/jtc1/sc22/open/n2356/ - Borrador estándar libre de C++ – bayda