如何在char []中设置二进制数据

时间:2012-05-15 07:20:11

标签: c++ c

我有const二进制数据,我需要插入缓冲区 例如

 char buf[] = "1232\0x1";

但是当二进制数据最初如下所示时怎么做呢

 char buf[] = "\0x11232";

编译器将其视为一个大十六进制数 但我的意图是

 char buf[] = {0x1,'1','2','3','2'};

3 个答案:

答案 0 :(得分:4)

您可以使用编译时字符串连接:

char buf[] = "\x01" "1232";

但是,在\x后面有一个2位数字,它也可以不用:

char buf[] = "\x011232";

<击>

答案 1 :(得分:3)

您可以通过组合相邻字符串来创建单个字符串文字 - 编译器将连接它们:

char buf[] = "\x1" "1232";

相当于:

char buf[] = {0x1,'1','2','3','2', 0};  // note the terminating null, which may or may not be important to you

答案 2 :(得分:0)

您必须以两字节或四字节格式写入它:

\xhh = ASCII character in hexadecimal notation

\xhhhh = Unicode character in hexadecimal notation if this escape sequence is used in a wide-character constant or a Unicode string literal.

所以在你的情况下你必须写"\x0112345"