std::stringstream
是C++标准库中的一个类,用于在内存中操作字符串流。它提供了一种方便的方式来格式化和解析字符串数据,类似于文件流(如 std::ifstream
和 std::ofstream
)但针对字符串。std::stringstream
属于 <sstream>
头文件,结合了输入(std::istringstream
)和输出(std::ostringstream
)的功能。
1.基本功能
- 格式化输出:可以像使用
std::cout
一样向std::stringstream
写入数据,然后将其作为字符串读取。 - 字符串解析:可以将一个字符串传递给
std::stringstream
,并从中解析不同的数据类型。 - 内存中的流操作:不涉及文件操作,完全在内存中进行数据的格式化和解析。
2.常见用法
构造和赋值
#include <sstream>
#include <string>
int main() {
// 创建一个空的 stringstream
std::stringstream ss;
// 用字符串初始化 stringstream
std::string initialData = "123 456";
std::stringstream ss2(initialData);
}
写入数据
#include <sstream>
#include <iostream>
int main() {
std::stringstream ss;
int num = 42;
std::string text = "Hello, World!";
// 向 stringstream 写入数据
ss << num << " " << text;
// 获取生成的字符串
std::string result = ss.str();
std::cout << "Generated string: " << result << std::endl;
return 0;
}
读取数据
#include <sstream>
#include <iostream>
int main() {
std::string data =