1.简介
std::stringstream 是 C++ 标准库 <sstream> 头文件提供的字符串流类,核心作用是在字符串和基本数据类型之间做转换,以及灵活地拼接 / 分割字符串。它属于内存流(而非文件流),所有操作都在内存中完成,效率高且使用灵活。
头文件:
#include <sstream> // 核心:字符串流
#include <iostream> // 控制台输出(辅助)
#include <string> // 处理字符串(辅助)
using namespace std; // 简化代码,实际项目可按需省略
<sstream> 提供三个核心类(均继承自 std::iostream):
| 类名 | 核心功能 | 类比 |
|---|---|---|
| std::istringstream | 只读字符串流(输入流) | 类似 ifstream |
| std::ostringstream | 只写字符串流(输出流) | 类似 ofstream |
| std::stringstream | 读写字符串流(双向流) | 类似 fstream |
2.核心功能与示例
2.1.类型转换(最常用)
stringstream 是 C++ 中灵活的类型转换工具,可实现任意基本类型(int/float/double 等)与字符串的互转,比 atoi/atof 或 C++11 的 std::to_string 更通用(支持多类型混合转换)。
1.数字 → 字符串
// 单个数字转字符串
int num = 123;
ostringstream oss;
oss << num; // 像输出到控制台一样写入字符串流
string str_num = oss.str(); // 获取流中的字符串
cout << "int 转 string:" << str_num << endl; // 输出:123
// 多类型混合转字符串
double pi = ;
flag = ;
ostringstream oss2;
oss2 << << pi << << boolalpha << flag;
string str_mix = oss();
cout << str_mix << endl;


