문제

FSTREAM을 사용하여 이진 파일에 글을 쓰고 바이너리 플래그를 사용하여 파일을 열 때.

간단한 글이 트릭을 한 바이너리로 텍스트를 써야했습니다. 문제는 또한 (16 진수에 표시된대로) 0을 써야한다는 것입니다.

이와 같은 특정 데이터를 어떻게 작성합니까?

도움이 되었습니까?

해결책

fstream을 열 때 ios::binary 이진 출력을 지정하는 플래그. 자세한 정보는 찾을 수 있습니다 여기.

글을 쓰는 것에 관해서는, 당신이 16 진수로 30을 볼 때 당신은 캐릭터 이진수가 아닌 '0'은 fstream으로 다음을 수행 할 수 있습니다.

my_fstream << 0;

이진 데이터 0에는 텍스트 표현이 없으므로 캐릭터 '0'을 읽을 수있는 것처럼 메모장으로 읽을 수 없습니다.

다른 팁

아마도 이와 같은 것이 필요할 것입니다. 적합한대로 개선하십시오.

ofstream file("output.bin", ios::out | ios::binary);
if (file.good())
{
    char buf[1] = {0};
    file.write(buf, sizeof(buf));
    file.close();
}

보다 정교한 솔루션 및 문서에 대한 링크가 이미 게시되었습니다.

이것을 살펴보십시오 :http://www.cplusplus.com/forum/general/11272/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top