📌  相关文章
📜  C++中的StringStream,用于将十进制转换为十六进制并返回(1)

📅  最后修改于: 2023-12-03 14:39:57.780000             🧑  作者: Mango

C++中的StringStream

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;
}

代码解释:

  1. 引入头文件

  2. 定义一个int型变量dec_num,其值为254。

  3. 创建一个StringStream对象ss。

  4. 使用stream输出流操作符"<< "将输出格式设置为16进制("std::hex"),并设置输出的宽度为2("std::setw(2)"),同时在输出不足两位的时候在前面填充0("std::setfill('0')")。

  5. 得到十六进制字符串,使用StringStream的成员函数str()。

  6. 输出得到的十六进制字符串。

输出结果为:fe。

总结

StringStream是一个非常方便的类,能够快速、简单地实现字符串与流之间的转换。这样的特性,对于需要进行多次转换的程序来说,是非常方便的。