Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;二进制值的转义序列_C++_String_Escaping - Fatal编程技术网

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回答了我的问题。。。