我试图在C ++中将string
转换为hex(string)
。
我一直在寻找一些代码,但大多数代码返回" space"作为跳跃而不是" 20"。(如下例所示)
另一个请求(如果可能)是返回包含所有8个值的代码。不是" 0x",只有8个值(即使它们是0)。
编辑此代码以返回" 0":
std::string ToHex(std::string s)
{
std::ostringstream ret;
for (std::string::size_type i = 0; i < s.length(); ++i)
ret << std::hex
<< std::setfill('0')
<< std::setw(8)
<< std::uppercase
<< (int)s[i];
return ret.str();
}
代码来自我编辑的C++ convert string to hexadecimal and vice versa 。
仍在尝试在没有跳转的情况下在同一个字符串中返回一个短语。
问题示例:
我的代码中没有写到:
void main()
{
Start:
std::string input;
std::cin >> input;
int l = ToHex(input, true).length();
std::string s = ToHex(input, true);
std::cout << "IS: " << s << " with " << std::to_string(l) << std::endl;
goto Start;
}
答案 0 :(得分:1)
修正了,问题在于&#34; cin&#34;在当时添加空格。 在这里,您可以使用我的代码调用&#34; ToHex&#34;(问题中的那个可以正常工作)。
void main()
{
Start:
std::string input = "";
std::getline(std::cin, input); // Now read until the end of the line
std::string s = ToHex(input);
std::cout << "TEXT: " << s << std::endl;
goto Start;
}