Стандартная библиотека C++ <sstream>
В программировании на C++ преобразование между строками и числами — обычная задача.
sstream— это компонент стандартной библиотеки C++, который предоставляет удобный способ работы со строковыми потоками (позволяя обрабатывать строки как потоки).
<sstream>Позволяет использовать строки как потоки ввода/вывода, что делает очень простым чтение данных из строк или запись данных в строки.
определение
sstream— это пространство имен в стандартной библиотеке C++, которое содержит несколько классов для работы со строковыми потоками, включая:
istringstream: используется для чтения данных из строки.ostringstream: используется для записи данных в строку.stringstream: даistringstreamиostringstreamсочетание, позволяет одновременно выполнять операции чтения и записи.
Синтаксис
ИспользованиеsstreamБазовый синтаксис выглядит следующим образом:
#include <sstream>
// 使用istringstream
std::istringstream iss("some data");
// 使用ostringstream
std::ostringstream oss;
// 使用stringstream
std::stringstream ss;
Пример
Чтение данных из строки
Ниже показано использованиеistringstreamПример чтения целых чисел и чисел с плавающей запятой из строки:
Пример
#include <sstream>
int main() {
std::string data = "10 20.5";
std::istringstream iss(data);
int i;
double d;
iss >> i >> d;
std::cout << "Целое: " << i << std::endl;
std::cout << "Вещественное: " << d << std::endl;
return 0;
}
Результат вывода:
Integer: 10 Double: 20.5
Запись данных в строку
Ниже показано использованиеostringstreamПример записи данных в строку:
Пример
#include <sstream>
int main() {
std::ostringstream oss;
int i = 100;
double d = 200.5;
oss << i << " " << d;
std::string result = oss.str();
std::cout << "Результирующая строка: " << result << std::endl;
return 0;
}
Результат вывода:
Resulting string: 100 200.5
Использование stringstream для операций чтения и записи
Ниже показано использованиеstringstreamПример одновременного выполнения операций чтения и записи:
Пример
#include <sstream>
int main() {
std::string data = "30 40.5";
std::stringstream ss(data);
int i;
double d;
// Чтение данных из stringstream
ss >> i >> d;
std::cout << "Целое число: " << i << ", Дробное число: " << d << std::endl;
// Запись данных в stringstream
ss.str(""); // Очистить stringstream
ss << "Новые данные: " << 50 << " " << 60.7;
std::string newData = ss.str();
std::cout << "Строка новых данных: " << newData << std::endl;
return 0;
}
Результат вывода:
Read Integer: 30, Double: 40.5 New data string: New data: 50 60.7
Итог
sstreamявляется очень полезным компонентом стандартной библиотеки C++, упрощающим преобразование между строками и базовыми типами данных. Из приведённых выше примеров видно, как использоватьistringstream、ostringstreamиstringstreamдля реализации этих преобразований. Освоение этих навыков поможет вам более эффективно обрабатывать строковые данные в программировании на C++.