【发布时间】:2017-04-18 06:17:44
【问题描述】:
我有一个包含一些值的字符串向量。这些值应该是十六进制字节,但在此向量中存储为字符串。 字节实际上是从文本文件中读取的,如下所示:
(文本文件的内容)
<jpeg1>
0xFF,0xD8,0xFF,0xE0,0x00,0x10,0x4A,0x46,0x49,0x46,0x00,0x01,0x01,0x01,0x00,0x60
</jpeg1>
到目前为止,我的代码所做的是,它开始读取 {JPEG1} 标记之后的行,直到 {/jpeg1} 标记,然后使用逗号 ' ,' 作为分隔符,它将字节存储到字符串向量中。
拆分字符串后,此时的向量存储如下值:
vector<string> myString = {"0xFF", "0xD8", "0xFF", "0xE0", "0x00", "0x10", "0x4A", "0x46", "0x49", "0x46", "0x00", "0x01", "0x01", "0x01", "0x00", "0x60"};
and if i print this i get the following:
0: 0xFF
1: 0xD8
2: 0xFF
3: 0xE0
4: 0x00
5: 0x10
6: 0x4A
7: 0x46
8: 0x49
9: 0x46
我想要的是,我想将这些字节存储在一个 unsigned char 数组中,这样每个元素都被视为 HEX 字节而不是字符串值。
最好是这样的:
unsigned char myHexArray[] = {0xFF,0xD8,0xFF,0xE0,0x00,0x10,0x4A,0x46,0x49,0x46,0x00,0x01,0x01,0x01,0x00,0x60};
if i print this i get:
0:
1: ╪
2:
3: α
4:
5:
6: J
7: F
8: I
9: F
解决了!
感谢您的帮助,到目前为止“ranban282”解决方案对我有用,我也会尝试其他用户提供的解决方案。
【问题讨论】:
-
你首先需要字符串向量吗?
-
您甚至可以从标签之间提取文本源并将其包含在 C++ 源中...
-
@n.m 不需要。我使用向量是因为我使用(从 stackoverflow 复制)分割字符串的函数使用向量。
-
最终需要的是,从文本文件中读取字节并将它们存储到某种无符号字符数组中。 :)
标签: c++ arrays vector char type-conversion