C⼀C++中如何将文件读取为二进制数据到数组中,再从数组中读取二进制流还原为文件,主要是后一步

2025-04-06 12:48:20
推荐回答(2个)
回答1:

任何文件都是由两部分组成的,文件=数据头+数据。
你存入数组的是完整的文件,包含了数据头和数据。那么你需要根据文件的定义来还原文件。比如说图像文件,拿BMP图像文件举例说明。在BMP数据头中,有许多图像定义块,这些不用管。然后看到颜色索引块(RGB小于16位特有),颜色索引块之后才是数据部分。你需要提取一个像素的信息(1-4字节不等),根据颜色索引确定该像素的颜色值。利用c语言中的画点函数,画上该点的颜色值。最后保存该文件,格式为BMP。操作系统会自动帮你补全数据头。
我举得例子是bmp图像的,其他的格式我不了解。如果你是要转换成其他格式。你就去网上搜一搜某某格式的数据包格式。
PS.全部都是纯手码字,望采纳!

回答2:

你读取了二进制数据也没用,又不能操作
写入函数具体如下
size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);