float - ¿Cuáles son las clases "string", "stream" y "stringstream" en C++?
string to int c++ (4)
Quiero saber cuál es la diferencia entre string y stream en c ++, y qué es stringstream?
En C y / o Unix, la metáfora básica era el archivo. Salida estándar, estándar en, tomas de red fueron representados utilizando descriptores de archivo. Por lo tanto, puede usar fprintf()
para escribir en estos "archivos" sin saber qué hay realmente debajo.
Como una alternativa más segura y más fría, C ++ presentó iostream como la metáfora básica que está casi integrada en el lenguaje utilizando el operador <<
. De nuevo, se puede acceder a archivos, cadenas y (con la biblioteca) a través de transmisiones sin saber de qué se trata.
Muy informalmente: una cadena es una colección de caracteres, una secuencia es una herramienta para manipular datos en movimiento. Una secuencia de cadenas es una clase de C ++ que le permite usar una cadena como fuente y destino de datos para una secuencia.
Además ... google es tu amigo.
Supongo que un stringstream es como un iostream, pero en lugar de escribir o leer desde un archivo, escribes o leo desde una cadena.
-
istream
yistream
: interfaces para la transmisión de datos (archivos, sockets, etc.) -
istringstream
: unistream
que envuelve una cadena y ofrece sus contenidos -
ostringstream
: unostream
que guarda el contenido escrito en él como una cadena
Ejemplo:
istringstream datastream("1 2 3");
int val;
datastream >> val;
cout << val << endl; // prints 1
datastream >> val;
cout << val << endl; // prints 2
datastream >> val;
cout << val << endl; // prints 3
ostringstream outstream;
outstream << 1 << "+" << 2 << "=" << 3;
cout << outstream.str() << endl; // prints "1+2=3"