C++ 使用 stringstream 将十六进制转换为十进制
以下是使用 stringstream 将 16 进制转换为 10 进制的 C++ 代码:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main() {
string hexString;
cout << 'Enter a hexadecimal number: ';
getline(cin, hexString);
stringstream ss;
ss << hexString; // 将字符串输入到 stringstream 中
int decimalNum;
ss >> std::hex >> decimalNum; // 使用 hex 格式将 stringstream 中的字符串转换为整数
cout << 'The decimal equivalent of ' << hexString << ' is ' << decimalNum << endl;
return 0;
}
在上面的代码中,我们首先使用 getline 函数从标准输入中读取一个 16 进制字符串。然后,我们将这个字符串输入到一个 stringstream 中,并使用 std::hex 格式将其转换为整数类型。最后,我们输出转换后的 10 进制整数。
请注意,我们必须在使用 >> 运算符将 stringstream 中的值提取到 decimalNum 变量中之前,使用 std::hex 格式将其转换为整数。这是因为在默认情况下,stringstream 将字符串解释为 10 进制整数,而我们需要将其解释为 16 进制整数。
原文地址: https://www.cveoy.top/t/topic/nQba 著作权归作者所有。请勿转载和采集!