C++ 从.dat文件中读取2个字节

C++ 从.dat文件中读取2个字节,c++,visual-c++,C++,Visual C++,我有一个这样存储的数据文件: 6字节(3*16位)报头。 -字节0+1(16位):x维 -字节2+3(16位):y尺寸 -字节4+5(16位):z尺寸 然后:按x、y、z顺序显示三维体积数据。每个体素16位(2字节),仅使用这16位中的12位 我想加载数据并使用C将其存储在数组中++ 那么如何从.data文件中加载2个字节呢?我要实现的算法是 load(String filename) { File fp = openfile(filename); Byte2 sizeX, sizeY, s

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

6字节(3*16位)报头。 -字节0+1(16位):x维 -字节2+3(16位):y尺寸 -字节4+5(16位):z尺寸 然后:按x、y、z顺序显示三维体积数据。每个体素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);
      }
    }
  }
}
load(字符串文件名)
{
File fp=openfile(文件名);
字节2 sizeX、sizeY、sizeZ;
sizeX=readfile(sizeof(Byte2),fp);
sizeY=readfile(sizeof(Byte2),fp);
sizeZ=readfile(sizeof(Byte2),fp);
无符号短数据[sizeX*sizeY*sizeZ];
对于(整数z=0;z
我建议使用
ifstream
对象来读取数据文件。当你在C++中打开一个文件时,你可以提到你想代替文本。在C++中,java的< <代码> BinaryReader < /> >没有直接的等价性。


<> >关于代码> IFStuts可以在这里找到。< /P> OK,因为没有人回答,但至少有人能告诉我如何在C++中使用BinaryReader吗?如果有教程或例子,我会很感激