转义符编译器的行为是依赖还是什么?
std::string pattern = "\xDDAF5742"; // or do pattern("\xDDAF5742");
std::cout << pattern << " " << pattern.size() << "\n";
在我的系统上,这会输出B 1
('B'== 0x42),但我认为它应该在字符串中加入4个字符。
答案 0 :(得分:2)
你想要这个:
std::string pattern = "\xDD\xAF\x57\x42";
否则,它会尝试将整个十六进制代码作为一个char读取,然后将其截断为最后8位。