概述
<sstream> 定义了三个类:
istringstream |
流的输入 |
ostringtream |
流的输出 |
stringstream |
流的输入输出 |
<sstream>主要用来进行数据类型转换。
<sstream>使用string对象来代替字符数组(snprintf方式),能避免缓冲区溢出的危险;而且,因为传入参数和目标对象的类型会被自动推导出来,所以不存在错误的格式化符的问题。
简单说,相比C语言自带的库的数据类型转换而言,<sstream>更加安全、自动和直接。
用法
- 数据类型转换
demo
#include <sstream> #include <iostream> using namespace std;
int main() { stringstream sstream; string strResult; int nValue = 1000;
// 将int类型的值放入输入流中 sstream << nValue;
// 从sstream中抽取前面插入的int类型的值,赋给string类型 sstream >> strResult;
return 0; } |
- 清空sstream
进行多次类型转换前 |
必须清空,否则可能得不到正确结果。
|
|
字符串拼接 |
可使用
|
- 字符串拼接
demo
#include <string> #include <sstream> #include <iostream> using namespace std;
int main() { stringstream sstream;
// 将多个字符串放入 sstream 中 sstream << "first" << " " << "string,"; sstream << " second string";
cout << "strResult is: " << sstream.str() << endl;
// 清空 sstream sstream.str(""); sstream << "third string";
cout << "After clear, strResult is: " << sstream.str() << endl; return 0; } |