2012-08-25 3 views
0

다음과 같이 저장된 데이터 파일이 있습니다..dat 파일에서 2 바이트 읽기

6 바이트 (3 * 16 비트) 헤더. - 바이트 0 + 1 (16 비트) : x 치수 - 바이트 2 + 3 (16 비트) : y 치수 - 바이트 4 + 5 (16 비트) : z 치수 다음 : x의 3D 볼륨 데이터 , y, z 순서. 복셀 당 16 비트 (2 바이트), 이들 중 12 비트 만 사용됩니다.

내가 데이터를로드 및 배열 그래서 어떻게이 .DATA 파일에서 내가 구현하고자하는 알고리즘을 2 바이트를로드 할 수 있습니다

C++

를 사용하여 그것을 저장할는

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

I입니다 ifstream 개체를 사용하여 데이터 파일을 읽는 것이 좋습니다. C++에서 파일을 열면 텍스트가 아닌 read the data in binary이 필요하다고 말할 수 있습니다. Java의 BinaryReader과 C++의 직접적인 등가물은 없습니다.

ifstream에 대한 자세한 내용은 C++ reference page에서 확인할 수 있습니다.