C ++中的StringStream,用于将十进制转换为十六进制并返回
在本节中,我们将看到如何在C++中将十进制转换为十六进制字符串,以及如何从十六进制字符串转换为十进制字符串。对于此转换,我们使用C++的stringstream功能。
字符串流用于格式化,解析,将字符串转换为数值等。十六进制是IO操作器。它以对IO流的引用作为参数,并在处理完该字符串后返回对该字符串的引用。
在下面的示例中,我们将看到如何转换十进制数或十六进制数。
范例程式码
#include<iostream>
#include<sstream>
using namespace std;
main(){
int decimal = 61;
stringstream my_ss;
my_ss << hex << decimal;
string res = my_ss.str();
cout << "The hexadecimal value of 61 is: " << res;
}输出结果
The hexadecimal value of 61 is: 3d
在上面的示例中,我们使用提取运算符“<<”将十进制转换为十六进制。在下一个示例中,我们将进行相反的操作。在此示例中,我们将十六进制字符串转换为十六进制,然后使用插入运算符“>>”将字符串流存储为整数。
范例程式码
using namespace std;
main() {
string hex_str = "0x3d"; //you may or may not add 0x before
hex value
unsigned int decimal;
stringstream my_ss;
my_ss << hex << hex_str;
my_ss >> decimal;
cout << "The Decimal value of 0x3d is: " << decimal;
}输出结果
The Decimal value of 0x3d is: 61