C ++如何从文件中读取十六进制字节并将它们存储为指针

时间:2017-06-14 06:52:53

标签: c++ pointers

我不是说文件说像" 0x0051a"或者其他什么,我的意思是字节0x4f是文件中的第一个字节,我想读取它并将其分配给指针。 到目前为止,这是我的代码。有什么建议吗?

unsigned char basePointer;

if (inFile.is_open()) {
    inFile.read(&basePointer, 1); }

1 个答案:

答案 0 :(得分:0)

典型的方法是将值读取为无符号整数[除非偏移量与某些值相对,而不是绝对值,并且某些偏移量指向"返回"你现在在哪里]

这样的事情:

uint32_t offset;
inFile.read(reinterpret_cast<char*>(&offset), sizeof(offset));

显然,在不知道文件的确切内容是什么的情况下,很难描述你对该偏移做了什么 - 它是从文件的开头到内部的一个部分的开头的偏移量文件?如果它是直接偏移:

inFile.seekg(offset);
inFile.read(...);

同样,在不知道你将从该位置读取什么内容的情况下,编写完全符合您需要的代码真的是不可能的,只是粗略的轮廓。