【发布时间】:2017-07-14 16:40:46
【问题描述】:
我正在尝试在二进制文件中组织矩阵,但我不太确定如何去做。我已经成功地将二维数组写入二进制文件并读回该数据,但我担心我只将一行长行写入二进制文件,然后将其读回二维数组。但是,话又说回来,我不完全确定二进制文件是如何工作的,所以我可能错了。 我想将我的二进制文件组织成一个数组图表。这可能吗? 如果我解释得不好,我很抱歉。如果是这样,请发表评论,以便我可以尝试更好地说明我正在尝试做的事情。
谢谢!
【问题讨论】:
-
你有什么理由使用二维数组而不是普通的平面数组吗?这样统一数据会容易得多。
-
我正在尝试创建一个程序生成的 10X10 磁贴,其中每个索引都将包含 1 或 0。您是说如果我为一维数组组织二进制文件然后读取会更容易就好像它们是二维数组一样?
-
文件是字节数组。这样,所有文件都是二进制文件。碰巧所谓的文本文件中的字节可以直接表示为ASCII字符。您应该将它们与 fstream 结合使用。
-
@Bartholomew 我认为将一维数组包装在与二维数组相同的结构中会更容易。换句话说,您可以在内部使用众所周知的 (y * width + x) 公式通过 (x, y) 坐标访问数组元素的结构。这样,将数据写入文件会容易得多。
-
如果您的数字占用超过一个字节,则需要考虑 Endianess。来自 Little Endian 平台的镜像数据将与 Big Endian 平台不兼容。
标签: c++ arrays binaryfiles