C++ C++;二进制值的转义序列
有没有一种方法可以使用原始二进制值将字符添加到字符串中?我知道我可以做这样的事情:C++ C++;二进制值的转义序列,c++,string,escaping,C++,String,Escaping,有没有一种方法可以使用原始二进制值将字符添加到字符串中?我知道我可以做这样的事情: std::string output3 = std::string("\x01\x00\x01...", ...); 这是由角色的十六进制值完成的。是否可以通过其bin值指定字符?大概是这样的: std::string output1 = std::string("\b11100101\b01000000", 7); 注:我知道 \b/COD>有其意义,只是一个例子。 < P>简短的答案-C++没有提供使用二
std::string output3 = std::string("\x01\x00\x01...", ...);
这是由角色的十六进制值完成的。是否可以通过其bin值指定字符?大概是这样的:
std::string output1 = std::string("\b11100101\b01000000", 7);
注:我知道<代码> \b/COD>有其意义,只是一个例子。 < P>简短的答案-C++没有提供使用二进制值来逃避字符的方法。< /P> 可能的解释是:对于任何编译器来说,它从来没有被认为是足够有用的,可以实现为一个扩展(AFAIK),当然也从来没有被认为是足够有用的,可以提出标准化 如果您确实需要它,我建议您编写(或修改)一个预处理器来为您这样做(但您不应该使用
\b
作为介绍人,因为这已经代表了退格字符)。您可以使用它来添加单个字符,例如:
std::string s=“abc”;
s、 附加(1,'d');
s、 追加(1,0x65);//0x65=='e'
std::难道上面没有列出任何内容,所以我猜:没有。您真的需要它以引用字符串形式出现吗?怎么样(char[]){0b01100101,0b01000000}
?(需要c++14或二进制的编译器扩展)。注意,你必须小心,Haha,我根本不需要它,我只是懒惰和好奇C++特性:我已经用与您类似的方法解决了它,这是一个简单的解决方案(顺便说一句,我必须使用GCC4.8.5,因此没有c++14)。但我想@manni66回答了我的问题。。。