문제
나는 입력을 두 번 필터하기 위해 두 개의 c ++ ioStreams를 "체인"할 생각을하고있었습니다. gzstreams를 사용하여 Zlib 압축 파일을 읽고 스트림에서 읽고 인코딩 변환을 수행하는 스트림을 코딩하려고 생각하고있었습니다. 아마도 열린 스트림을 생성자 매개 변수로 전달함으로써 ... 이것이 어떻게 가장 잘 달성 될 수 있다고 생각하십니까?
해결책
나는 이것을 사용하지 않았지만 부스트를 사용했습니다 필터링 _stream 도움이 될 수 있습니다.
예를 들어 내가 찾았습니다 메일 링리스트 게시물 ~와 함께 indent.hpp, 출력을 들여 보내는 출력 필터를 구현하는 것은 다음과 같습니다.
boost::iostreams::filtering_ostream out;
indent_filter::push(out,2);
out.push(std::cout);
그리고 그렇게 사용하십시오.
out << "Hello Filter!\n"
<< indent_in
<< "this is\n"
<< "indented\n"
<< indent_out
<< "until here\n"
;
이로 인해 출력이 발생합니다.
Hello Filter!
this is
indented
until here
제휴하지 않습니다 StackOverflow