我在网上搜索过,但似乎并不能解决我的问题。基本上我有一个std::string
包含十六进制内存地址(例如0x10FD7F04)。显然,这个数字是从文本文件中读取并保存为std::string
.
我需要将此字符串转换为 int 值,但保留十六进制表示法0x。有什么办法可以做到这一点吗?
您可以使用 C++11std::stoi
函数:
#include <iostream>
#include <iomanip>
#include <string>
int main()
{
std::string your_string_rep{"0x10FD7F04"};
int int_rep = stoi(your_string_rep, 0, 16);
std::cout << int_rep << '\n';
std::cout << std::hex << std::showbase << int_rep << '\n';
}
Run Code Online (Sandbox Code Playgroud)
输出:
285048580
0x10fd7f04
Run Code Online (Sandbox Code Playgroud)