如何从十六进制编辑器中读取文件并在c ++中查找等效的ASCII值

时间:2013-10-15 08:38:15

标签: c++

我有一个十六进制的文件,如下所示

9C CB CB 8D 13 75 D2 11 91 58 00 C0 4F 79 56 A4 60 00 00 00 92 02 00 00 40 1F 00 00 80 14 00 00 A4 08 00 00 90 02 00 00 A0 09 01 00 40 AE 00 00 E4 27 00 00 90 02 00 00 A0 09 01 00 FC 7A 00 00 84 31 01 00 CF 01 00 00 A0 09 01 00 14 A7 00 00 24 3B 02 00 75 02 00 00 A0 09 01 00 50 8D 00 00 C4 44 03 00 14 02 00 00 A0 09 01 00 20 35 00 00 64 4E 04 00 C8 00 00 00 90 02 00 00 E8 03 00 00 00 00 00 00 00 08 00 00 CA 01 00 00 A4 00 00 00

前16个字节(9C CB CB 8D 13 75 D2 11 91 58 00 C0 4F 79 56 A4)显示我文件的标题。

1 个答案:

答案 0 :(得分:1)

这会将十六进制输入转换为字符,并将其打印出来(尽管数字80和更高版本实际上不是ASCII,因为它们超出了ASCII定义的范围):

#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>

int main() { 
     std::transform(std::istream_iterator<std::string>(std::cin), 
                    std::istream_iterator<std::string>(),
                    std::ostream_iterator<char>(std::cout),
                    [](std::string const &in) {
                        return (char) strtol(in.c_str(), NULL, 16); 
                    });
}

我不确定这对你有多好,但它似乎是你所要求的,没有更多关于你真正想要的信息,它就像我认为任何人都可能做的一样好