-5

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

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 0 E0 2 0 09 01 0 E0 2 4 AE 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 0 00 50 4 0 0 0 00 50 4 8D 0 C 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)显示我的文件的标题。

4

1 回答 1

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); 
                    });
}

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

于 2013-10-15T08:54:16.267 回答