c++ - 获取字符串中的每个字符并将其转换为十六进制 C++?

标签 c++ string hex user-input unsigned-char

我正在尝试将用户输入作为字符串,并将每个单独的元素转换为它的十六进制等价物,作为 C++ 中的 unsigned char。例如,我想获取用户输入“CL”并将其转换为存储在无符号字符中的 0x43 和 0x4C。

string ui;
unsinged char uihex;

cout << "Please enter in command to execute: ";
cin >> ui;
for (int i=0; i<ui.length()-1; i++)
{
    uihex = static_cast<unsigned char>(ui);
}

最佳答案

如果您想打印 十六进制值,您需要将char 变量转换为整数类型。这将帮助编译器选择正确的打印函数:

char c = 'C';
cout << "0x" << hex << ((unsigned int) c) << endl;

关于c++ - 获取字符串中的每个字符并将其转换为十六进制 C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30850137/

相关文章:

c++多态性,派生类的名称解析

java - 将字符串剪切到给定索引

python - 如何将 float 拆分并保持在一起 Ruby 和 Python

c - 在 C 中将 Hex 写入文件(不是 ASCII)

c++ #define一个带括号的宏?

c++ - 如何将标签文本数据绑定(bind)到底层对象的属性?

java - 比较带符号的十六进制数

将单个字符(十六进制数)转换为 C 中的整数

c++ - std::next_permutation 的摊销复杂度?

c - 字符串反转 - 段错误