大鼻子的书包 · 对numpy数组进行下采样· 9 月前 · |
粗眉毛的熊猫 · cmake: Could NOT find ...· 1 年前 · |
发呆的拖把 · Vscode 运行 python ...· 1 年前 · |
在我下面的代码中,从文件中读取HEX并存储在字符串数组中的
CODE 1
在打印出来时不会将其转换为
ASCII
。
删除pls
发布于 2021-12-31 21:14:10
好吧,看上去有点混乱。首先,我要问你是否确定你知道你的档案里有什么。
就是它里面有,哦,看起来大概有二十个字符,
\
8
等等?
或者它包含一个十六进制48 (一个字节),一个十六进制83 (一个字节),总共5个字符?
我打赌这是第一次。我敢打赌你的文件大约有20个字符长,包含正在打印的字符串。
如果是这样的话,那么代码就是按照您的预期执行的。它正在读一行文字,然后把它写回来。如果您想让它像编译器那样实际地解释它,那么您必须自己执行这些步骤。
现在,如果它实际上包含了十六进制字符(但我打赌它没有),那么这是一个稍微不同的问题,我们将不得不看看它。但我认为您只是有一个字符串,其中包括
\x
。而读/写并不会自动为你带来一些魔力。
发布于 2021-12-31 21:18:17
从文件读取时,反斜杠字符不会转义。文件中的
test
字符串实际上是一个chars数组:
{'\\', 'x', '4', '8', ... }
虽然硬编码的文字字符串,
"\x48\x83\xEC\x28\x48\x83";
是完全十六进制由编译器转义。
如果您真的希望将数据存储为一系列“反斜杠x NN”序列的文本文件,则需要在读取文件后进行转换。这是一个被黑客攻击的循环,可以帮到你。
std::string test = sstr.str();
char temp[3] = {};
size_t t = 0;
std::string corrected;
for (char c : test)
if (isxdigit(c))
temp[t] = c;
if (t == 2)
大鼻子的书包 · 对numpy数组进行下采样 9 月前 |