将std :: string转换为unsigned char

时间:2019-01-02 13:50:27

标签: c++ hex

我有一个像这样的字符串:

std::string s="840D8E88B0AC";

和一个数组:

char MAC[6];

我想制作这个:

MAC={0x84,0x0D,0x8E,0x88,0xB0,0xAC};

我尝试使用sscanf(),但我做不到。

sscanf(s.c_str(), "%02X%02X%02X%02X%02X%02X", MAC[0], MAC[1], MAC[2], MAC[3], MAC[4], MAC[5]);

1 个答案:

答案 0 :(得分:1)

应该是(尽管有其他错误)

sscanf(s.c_str(), "%02X%02X%02X%02X%02X%02X", &MAC[0], &MAC[1], &MAC[2], 
    &MAC[3], &MAC[4], &MAC[5]);

sscanf(及其变体)需要指针才能更改要读入的变量。

惊讶的是您的编译器没有警告您该错误。