Bitset 데이터를 파일에 작성하는 방법은 무엇입니까? [복제하다

StackOverflow https://stackoverflow.com/questions/778378

  •  13-09-2019
  •  | 
  •  

문제

파일에 비트를 쓰고 싶은 std :: bitset이 있지만 물론 FStream의 쓰기 기능은 이것을 지원하지 않습니다. 나는 각 8 비트 그룹을 문자열을 사용하여 숯으로 변환하고 그것을 쓰는 것 외에 다른 방법을 생각할 수 없습니다.

좋은 방법을 아는 사람이 있습니까?

도움이 되었습니까?

해결책

노력하다:

#include <bitset>
#include <fstream>

int main() {
    using namespace std;
    const bitset<12> x(2730ul); 
    cout << "x =      " << x << endl;

    ofstream ofs("C:\\test.txt"); // write as txt
    if (ofs) {
        // easy way, use the stream insertion operator
        ofs << x << endl;

        // using fstream::write()
        string s = x.to_string();
        ofs.write(s.c_str(), s.length()); 
    }
    return 0;
}

다른 팁

글쎄, "" "" "는 직렬화 방법으로 문자열을 사용하는 것입니다. 문자열 인수를 취하는 비트 세트 생성자가 있으며, TO_STRING () 멤버 함수를 반환하는 멤버 함수가 있습니다. 스트림 삽입 및 추출을 위해 생성자와 TO_STRING () 함수를 사용하는 << 및 >> 도우미 연산자도 있습니다. 요구 사항에 따라 효과가있을 수 있습니다.

그것은 하나의 응용 프로그램에서 우리에게 충분히 작지 않았으므로 우리는 비트셋처럼 보이는 클래스를 작성했지만 (인터페이스와 동일한 인터페이스를 가지고 있음) 바이트 스트림으로 직렬화 할 수 있습니다. 즉, 포인터를 기본으로 반환하는 함수가 있습니다. 그것을 만드는 바이트 배열. 여러 가지 구현의 소스가 있다면 글을 쓰는 것은 그리 어렵지 않았습니다.

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