【发布时间】:2013-01-16 23:58:49
【问题描述】:
我正在编写一个游戏项目作为一种爱好,目前我需要将一些资源数据(例如 .BMP)存储为我自己的文件格式,以便我的游戏可以解析所有这些数据并加载到屏幕中。
为了读取 BMP,我先读取标题,然后读取每个像素的 RGB 数据,然后我有一个数组[width][height] 来存储这些值。
有人告诉我应该将这些类型的数据保存为二进制,但不是原因。我已经阅读了二进制及其是什么(数据的 0-1 表示),但我为什么要使用它来保存 .BMP 数据? 如果我稍后在游戏中阅读它,它不是只会增加更多的复杂性,甚至可能会减慢加载过程吗?
最后,如果最好保存为二进制文件(我猜是这样,从我在其他游戏资源文件中研究的内容来看,每个人似乎都是这样做的)我如何在 C++ 中读取和写入二进制文件? 我已经看到了很多问题,但是对于许多不同类型的变量有很多不同的方法,所以我想问哪种方法是最好的/更像 C++ 的方法?
【问题讨论】:
-
bmp 是一种其他人可以使用的具有规范的格式,如果您想使用它,您需要以该格式编写,以便其他通常可以打开 bmp 文件的程序也可以读取它们。如果您只想能够读取这些文件,请将其保存为您想要的任何格式,但不要以人们可能会将它们误认为其他格式的方式命名文件。
-
这里的二进制很可能意味着不是文本。
标签: c++ binary binaryfiles