C 如何将一个16进制文本读取到uint8_t 类型的buffer里,按16进制打印出每次read的最后四字节的内容
时间: 2024-04-10 09:34:13 浏览: 102
C/C++ 读取16进制文件的方法
3星 · 编辑精心推荐
您可以使用以下代码将16进制文本读取到`uint8_t`类型的缓冲区中,并按16进制打印每次`read`的最后四个字节的内容:
```C
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#define BUFFER_SIZE 1024
void printLastFourBytes(uint8_t buffer[], size_t bytesRead) {
if (bytesRead >= 4) {
printf("Last four bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
buffer[bytesRead-4], buffer[bytesRead-3],
buffer[bytesRead-2], buffer[bytesRead-1]);
}
}
int main() {
FILE *file = fopen("hex_text.txt", "r");
if (file == NULL) {
printf("Failed to open file.\n");
return 1;
}
uint8_t buffer[BUFFER_SIZE];
size_t bytesRead;
do {
bytesRead = fread(buffer, sizeof(uint8_t), BUFFER_SIZE, file);
printLastFourBytes(buffer, bytesRead);
} while (bytesRead == BUFFER_SIZE);
fclose(file);
return 0;
}
```
在上面的代码中,我们使用`fread`函数从文件中读取16进制文本数据,并将其存储在`uint8_t`类型的缓冲区`buffer`中。然后,通过调用`printLastFourBytes`函数,我们打印出每次读取的最后四个字节的内容。
请确保将文件名更改为您实际使用的16进制文本文件的名称,并将其与代码放在同一目录下。运行代码后,将按顺序打印出每次读取的最后四个字节的内容。
阅读全文