Bitset 데이터를 파일에 작성하는 방법은 무엇입니까? [복제하다
문제
이 질문은 이미 여기에 답이 있습니다.
파일에 비트를 쓰고 싶은 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 () 함수를 사용하는 << 및 >> 도우미 연산자도 있습니다. 요구 사항에 따라 효과가있을 수 있습니다.
그것은 하나의 응용 프로그램에서 우리에게 충분히 작지 않았으므로 우리는 비트셋처럼 보이는 클래스를 작성했지만 (인터페이스와 동일한 인터페이스를 가지고 있음) 바이트 스트림으로 직렬화 할 수 있습니다. 즉, 포인터를 기본으로 반환하는 함수가 있습니다. 그것을 만드는 바이트 배열. 여러 가지 구현의 소스가 있다면 글을 쓰는 것은 그리 어렵지 않았습니다.
제휴하지 않습니다 StackOverflow