📅  最后修改于: 2023-12-03 14:39:57.780000             🧑  作者: Mango
StringStream是C++标准库中的一个类,用于将字符串与流进行转换。它有如下作用:
下面我们以将十进制转换为十六进制为例,使用StringStream来实现:
#include <iostream>
#include <sstream>
#include <iomanip>
int main() {
int dec_num = 254;
std::stringstream ss;
ss << std::hex << std::setw(2) << std::setfill('0') << dec_num;
std::string hex_str = ss.str(); // 输出16进制字符串
std::cout << hex_str << std::endl; // 输出fe
return 0;
}
代码解释:
引入头文件
定义一个int型变量dec_num,其值为254。
创建一个StringStream对象ss。
使用stream输出流操作符"<< "将输出格式设置为16进制("std::hex"),并设置输出的宽度为2("std::setw(2)"),同时在输出不足两位的时候在前面填充0("std::setfill('0')")。
得到十六进制字符串,使用StringStream的成员函数str()。
输出得到的十六进制字符串。
输出结果为:fe。
StringStream是一个非常方便的类,能够快速、简单地实现字符串与流之间的转换。这样的特性,对于需要进行多次转换的程序来说,是非常方便的。