std :: string控制字符:为字符串分配十六进制数

时间:2014-07-02 02:07:45

标签: c++ string escaping hex std

转义符编译器的行为是依赖还是什么?

std::string pattern = "\xDDAF5742"; // or do pattern("\xDDAF5742");
std::cout << pattern << " " << pattern.size() << "\n";

在我的系统上,这会输出B 1('B'== 0x42),但我认为它应该在字符串中加入4个字符。

1 个答案:

答案 0 :(得分:2)

你想要这个:

std::string pattern = "\xDD\xAF\x57\x42"; 

否则,它会尝试将整个十六进制代码作为一个char读取,然后将其截断为最后8位。