2013-04-10 3 views
1

C++을 사용하여 파일을 열려고합니다. 파일 형식은 다양 할 수 있습니다. 내가하려고하는 일은 메모리에 저장된 파일을 여는 것입니다.바이너리 형식으로 파일 열기

1 바이트 텍스트 파일이고 10000011로 메모리에 저장되었다고 가정하면 컴퓨터에 저장되는 방식과 같은 형식으로 파일을 열려면 C++을 사용하고 싶습니다.

어떻게 그렇게합니까?

+0

당신이 지금까지 가지고있는 것을 보여주십시오. 그래서 우리는 어디서 도와야하는지 알고 있습니다. –

+0

나는 그것을 얻는다라고 생각한다. .. 잠깐, 무엇? –

+0

http://www.cplusplus.com/reference/fstream/ifstream/open/ –

답변

5

당신이 좋아하면 fopen 함수를 호출 이진 형식의 파일을 열 수 있습니다 (

이제
FILE* f = fopen(filename, "rb"); 

당신이 비트에 의해 파일 비트를 읽을 수 있지만 바이트 적어도 바이트를 읽을해야합니다 바이트는 가장 작은 단위이기 때문에 작업해야합니다. 예 :

은 파일의 1 바이트를 읽습니다. 그런 다음 바이너리로이 값을 인쇄, 바이너리 및 운영 (&)에 의해 하나의 비트에 액세스 할 수 있습니다 (예를 들어 0과 1 초)은 다음과 같이 할 수있다 :

물론
printf("%d%d%d%d%d%d%d%d\n", 
      value & 0x80 ? 1 : 0, 
      value & 0x40 ? 1 : 0, 
      value & 0x20 ? 1 : 0, 
      value & 0x10 ? 1 : 0, 
      value & 0x8 ? 1 : 0, 
      value & 0x4 ? 1 : 0, 
      value & 0x2 ? 1 : 0, 
      value & 0x1 ? 1 : 0); 

이러한 C 표준 기능은, 당신은 또한 사용할 수 있습니다 열 사용을위한 C++ 사람 : 당신이 사용할 수있는 독서를 들어

ifstream file (filename, ios::in|ios::binary); 

:

file.read(valueAddress, sizeInBytes); 

그리고 당신은 (cout을 포함) 물건을 인쇄하는 방법을 알고 있어야합니다.

관련 문제