概述
std::stringstream 是 C++ 标准库 <sstream> 头文件提供的字符串流类,核心作用是在字符串和基本数据类型之间做转换,以及灵活地拼接或分割字符串。它属于内存流(而非文件流),所有操作都在内存中完成,效率高且使用灵活。
引入时通常配合 <iostream> 和 <string>:
#include <sstream>
#include <iostream>
#include <string>
using namespace std;
<sstream> 提供三个核心类(均继承自 std::iostream):
| 类名 | 核心功能 | 类比 |
|---|---|---|
std::istringstream | 只读字符串流(输入流) | 类似 ifstream |
std::ostringstream | 只写字符串流(输出流) | 类似 ofstream |
std::stringstream | 读写字符串流(双向流) | 类似 fstream |
核心功能与示例
类型转换(最常用)
stringstream 是 C++ 中灵活的类型转换工具,可实现任意基本类型(int/float/double 等)与字符串的互转,比 atoi/atof 或 C++11 的 std::to_string 更通用,支持多类型混合转换。
数字 → 字符串
// 单个数字转字符串
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;


