2012-08-25 194 views
0

我有一個像這樣存儲的數據文件:從.dat文件讀取2個字節

6個字節(3 * 16位)標頭。- 字節0 + 1(16位):x維 -字節2 + 3(16位):y維 -字節4 + 5(16位):z維 然後:3D體數據x ,y,z順序。每個體素16位(2字節),這16箇中只有12位被使用。

我要加載的數據,並存儲用C++

陣列,使得如何可以加載2個字節從.data文件,我想要實現的算法是

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); 
     } 
    } 
    } 
} 
+0

還行,因爲還沒有人回答 任何人都可以告訴我如何在C++中使用BinaryReader? 如果有教程或例子我會很感激 – Lily

回答

1

我會建議使用ifstream對象來讀取數據文件。當你用C++打開一個文件時,你可以提到你想要read the data in binary而不是文本。在C++中沒有Java的BinaryReader的直接等價物。

有關ifstream的更多詳細信息,請參見此C++ reference page