¿Hay alguna forma directa de calcular el tamaño de la cadena interna en stringstream?Tamaño de stringstream
Aquí, str()
devuelve una copia y luego obtiene el tamaño de la cadena.
std::stringstream oss("String");
oss.str().size();
¿Hay alguna forma directa de calcular el tamaño de la cadena interna en stringstream?Tamaño de stringstream
Aquí, str()
devuelve una copia y luego obtiene el tamaño de la cadena.
std::stringstream oss("String");
oss.str().size();
std::stringstream oss("String");
oss.seekp(0, ios::end);
stringstream::pos_type offset = oss.tellp();
Esto es para el puntero de escritura, pero el resultado es el mismo para puntero de lectura en Visual C++ v10.
Por supuesto que es:
std::stringstream oss("Foo");
oss.seekg(0, ios::end);
int size = oss.tellg();
Ahora, tamaño contendrá el tamaño (en bytes) de la cadena.
EDIT:
Esto también es una buena idea poner después de que el fragmento anterior, ya que pone el puntero interno de vuelta al principio de la cadena.
oss.seekg(0, ios::beg);
Interesante. Me pregunto si esto siempre mostrará el mismo resultado que los equivalentes del puntero de escritura. –
Si usa el puntero de escritura, ¿debería seguir buscando hasta el final? ¿No sería siempre al final? – Ferruccio
Gcc 4.4 no parece gustarle esto, establece el flujo failbit –