我正在尝试了解有关二进制文件的更多信息,因此我从 HexEdit 开始,我手动编写了一个文件并为其创建了一个模板。这是我的工作:
现在,我开始在 C++ Win32 中开发一个控制台应用程序,以读取该文件中的内容并使它们看起来友好。这是我的部分代码:
typedef unsigned char BYTE;
long getFileSize(FILE *file)
{
long lCurPos, lEndPos;
lCurPos = ftell(file);
fseek(file, 0, 2);
lEndPos = ftell(file);
fseek(file, lCurPos, 0);
return lEndPos;
}
int main()
{
const char *filePath = "D:\\Applications\\ColorTableApplication\\file.clt";
BYTE *fileBuf; // Pointer to our buffered data
FILE *file = NULL; // File pointer
if ((file = fopen(filePath, "rb")) == NULL)
printf_s("Could not open specified file\n");
else {
printf_s("File opened successfully\n");
printf_s("Path: %s\n", filePath);
printf_s("Size: %d bytes\n\n", getFileSize(file));
}
long fileSize = getFileSize(file);
fileBuf = new BYTE[fileSize];
fread(fileBuf, fileSize, 1, file);
for (int i = 0; i < 100; i++){
printf("%X ", fileBuf[i]);
}
_getch();
delete[]fileBuf;
fclose(file); // Almost forgot this
return 0;
}
(我提供了这么多代码,因为我想清楚,以帮助您了解我正在尝试做什么)
首先,我需要获取前 14 个字节并将它们作为文本写入控制台,然后,for
我需要为每种颜色编写类似这样的内容:
black col_id = 1; R = 00; G = 00; B = 00;
red col_id = 2; R = FF; G = 00; B = 00;
etc...
如何读取和翻译这些字节?