从文件中读取数据和大小并保存到uint8_t *data和int size中 给个示例
时间: 2024-03-09 11:46:44 浏览: 66
从文件读取数据
好的,以下是一个从文件中读取数据并保存到 `uint8_t *data` 和 `int size` 中的示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
int main() {
FILE *fp;
uint8_t *data;
int size;
fp = fopen("example.bin", "rb");
if (fp == NULL) {
printf("无法打开文件\n");
return 1;
}
// 获取文件大小
fseek(fp, 0, SEEK_END);
size = ftell(fp);
fseek(fp, 0, SEEK_SET);
// 分配内存
data = (uint8_t *)malloc(size);
// 读取数据
fread(data, sizeof(uint8_t), size, fp);
// 关闭文件
fclose(fp);
// 打印数据和大小
printf("读取的数据: ");
for (int i = 0; i < size; i++) {
printf("%02X ", data[i]);
}
printf("\n");
printf("数据大小: %d\n", size);
// 释放内存
free(data);
return 0;
}
```
在上面的示例中,我们首先使用 `fopen()` 函数打开二进制文件,使用 `fseek()` 和 `ftell()` 函数获取文件的大小,并使用 `malloc()` 函数分配足够的内存来存储文件数据。然后,使用 `fread()` 函数从文件中读取数据并将其存储在 `data` 数组中。最后,使用 `printf()` 函数打印出 `data` 数组中的数据和文件的大小,并使用 `free()` 函数释放 `data` 数组所占用的内存。
需要注意的是,此示例仅适用于读取二进制文件。如果要读取文本文件,需要使用其他函数,如 `fgets()` 函数。
阅读全文