使用char数组来存储数据

时间:2012-12-15 15:56:26

标签: c++ byte arrays

我需要在运行时创建一个程序,它应该提取一个图像文件。要做到这一点,我使用char数组来存储数据。例如:

char data[]="ÿØÿà......";

我用十六进制编辑器打开图像并复制数据并将其粘贴如上。但它会带来许多错误。 (这可能是因为图像数据有一些ascii charactors不可用的字节。例如:nul,)

有人给我一些关于如何做到这一点的建议。如何创建一个字节数组。

感谢eny的建议。

2 个答案:

答案 0 :(得分:3)

您应该使用数字初始值设定项而不是字符串文字...例如

const unsigned char data[] = { 0x01, 0x02, 0x03, 0x04,
                               0x05, 0x06, 0x07, 0x08 };

一种简单的方法是编写一个小脚本,通过读取文件来生成源代码...在Python中它就像

data = open("datafile", "rb").read()
i = 0
while i < len(data):
    chunk = data[i:i+8]
    print ("0x%02x, " * len(chunk)) % tuple(map(ord, chunk))
    i += 8

答案 1 :(得分:2)

使用fopen或fstream从文件中读取数据。如果要使用资源编译器将文件嵌入到exe中。