0

我有一个这样存储的数据文件:

6 字节(3*16 位)标头。- 字节 0+1(16 位):x 维度 - 字节 2+3(16 位):y 维度 - 字节 4+5(16 位):z 维度 then:x,y,z 中的 3D 体积数据命令。每个体素 16 位(2 个字节),这 16 位中仅使用了 12 位。

我想使用 C++ 加载数据并将其存储在一个数组中

那么如何从 .data 文件中加载 2 个字节,我想要实现的算法是

load(String filename)
{
 File fp = openfile(filename);
 Byte2 sizeX, sizeY, sizeZ;
 sizeX = readfile(sizeof(Byte2),fp);
 sizeY = readfile(sizeof(Byte2),fp);
 sizeZ = readfile(sizeof(Byte2),fp);
 UnsignedShort data[sizeX*sizeY*sizeZ];
 for(Integer z=0; z < sizeZ; z++) {
    for(Integer y=0; y < sizeY; y++) {
       for(Integer x=0; x < sizeX; x++) {
        data[x+y*sizeX+z*sizeX*sizeY] = readfile(sizeof(Byte2),fp);
      }
    }
  }
}
4

1 回答 1

1

我建议使用ifstream对象来读取数据文件。当您在 C++ 中打开文件时,您可以提及您希望以二进制而不是文本的形式读取数据。BinaryReader在 C++中没有直接等同于 Java 的。

更多详细信息ifstream可以在这个C++ 参考页面中找到。

于 2012-09-06T10:22:38.417 回答