Biblioteca estándar de C++ <sstream>

En la programación de C++, manejar conversiones entre cadenas y números es una tarea común.

sstreamEs un componente de la biblioteca estándar de C++ que proporciona una manera conveniente de manejar flujos de cadenas (puedes manejar cadenas como si fueran flujos).

<sstream>Permite usar cadenas como flujos de entrada/salida, lo que hace muy sencillo leer datos desde una cadena o escribir datos en una cadena.

Definición

sstreamEs un espacio de nombres en la biblioteca estándar de C++ que contiene varias clases para manejar flujos de cadenas. Estas clases incluyen:

  • istringstream: Se utiliza para leer datos desde una cadena.
  • ostringstream: Se utiliza para escribir datos en una cadena.
  • stringstream: Esistringstreamyostringstreamla combinación de ambas, que puede realizar operaciones de lectura y escritura al mismo tiempo.

Sintaxis

Para usarsstreamla sintaxis básica es la siguiente:

#include <sstream>

// 使用istringstream
std::istringstream iss("some data");

// 使用ostringstream
std::ostringstream oss;

// 使用stringstream
std::stringstream ss;

Ejemplo

Leer datos desde una cadena

A continuación se muestra un ejemplo que usaistringstreampara leer números enteros y flotantes desde una cadena:

Ejemplo

#include <iostream>
#include <sstream>

int main() {
    std::string data = "10 20.5";
    std::istringstream iss(data);

    int i;
    double d;

    iss >> i >> d;

    std::cout << "Integer: " << i << std::endl;
    std::cout << "Double: " << d << std::endl;

    return 0;
}

Resultado de salida:

Integer: 10
Double: 20.5

Escribir datos en una cadena

A continuación se muestra un ejemplo que usaostringstreampara escribir datos en una cadena:

Ejemplo

#include <iostream>
#include <sstream>

int main() {
    std::ostringstream oss;
    int i = 100;
    double d = 200.5;

    oss << i << " " << d;

    std::string result = oss.str();
    std::cout << "Resulting string: " << result << std::endl;

    return 0;
}

Resultado de salida:

Resulting string: 100 200.5

Realizar operaciones de lectura y escritura con stringstream

A continuación se muestra un ejemplo que usastringstreampara realizar operaciones de lectura y escritura al mismo tiempo:

Ejemplo

#include <iostream>
#include <sstream>

int main() {
    std::string data = "30 40.5";
    std::stringstream ss(data);

    int i;
    double d;

    // Leer datos desde stringstream
    ss >> i >> d;

    std::cout << "Read Integer: " << i << ", Double: " << d << std::endl;

    // Escribir datos en stringstream
    ss.str(""); // Limpiar stringstream
    ss << "New data: " << 50 << " " << 60.7;

    std::string newData = ss.str();
    std::cout << "New data string: " << newData << std::endl;

    return 0;
}

Resultado de salida:

Read Integer: 30, Double: 40.5
New data string: New data: 50 60.7

Resumen

sstreamEs un componente muy útil de la biblioteca estándar de C++ que simplifica la conversión entre cadenas y tipos de datos básicos. A través de los ejemplos anteriores, podemos ver cómo usaristringstream、ostringstreamystringstreampara realizar estas conversiones. Dominar estas habilidades te ayudará a manejar datos de cadena de manera más eficiente en la programación de C++.

Otras extensiones