문제

나는 입력을 두 번 필터하기 위해 두 개의 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 
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top