我正在处理来自服务提供商的二进制数据 . 我使用C通过HTTP请求订阅此数据 . 我不时地从这个提供者那里得到一个HTML有效载荷 . HTML有效负载实际上是二进制数据,看起来像这样:
! ¦ô¿Âˤ ÍÌL? Àÿ Àÿ¥ š™©@ Àÿ Àÿ
或 ! H·ô¿Âˤ ÍÌL? Àÿ333?¥ š™©@ Àÿff¦@
我想使用我得到的数据进行模拟 . 为此,我在字符串中硬编码数据并启动将使用这些字符串的程序 .
std::string input = "! ¦ô¿Âˤ ÍÌL? Àÿ Àÿ¥ š™©@ Àÿ Àÿ"
我的第一个问题是我必须逃避所有字符,如 \n
. 但我不知道如何逃避 \0
. 此外,我有此错误消息,这可能是由于我没有正确地逃避文件结束字符的事实:
Error 3 fatal error C1004: unexpected end-of-file found
所以主要的问题是:文件结尾字符是什么样的,我怎么能逃脱呢?
然后,有一个linux命令或从二进制文件中获取二进制数据的方法,并使用 \
转义所有特殊字符,然后我只是将其粘贴到我的C代码中 .
最后,我想将所有不同的有效负载放在二进制文件中,这样我就可以使用这个文件启动我的模拟了 . 问题是我不知道如何分离不同的有效载荷,因为只是进入下一行不会起作用,因为它将被解释为随机字符(并且有效载荷没有固定大小) . 我不知道使用什么样的分隔符 .
1 回答
您可以将有效负载写入文件并使用
std::ifstream
进行读取 . 这将允许您更改有效负载而无需重新编译 .如果你真的想将它存储为二进制数据,你可以使用一个char数组,并像这样初始化它:
哦,顺便说一句,我使用以下简单的Python代码将您的有效负载转换为缓冲区: