Logparser 응용 프로그램을 작성 했으므로 .gz 파일의 압축을 구현하려고합니다. 내가 boost :: iostreams 및 zlib 작동하는 것, 시도했지만 압축 된 파일을 얻을 입력을 처리하는 방법을 모르겠습니다.boost :: filtering_streambuf with gzip_decompressor(), 파일에서 줄 단위로 액세스하는 방법
는 여기에 내가 할 수있는 작업은 다음과 같습니다
input.open(p.source_at(i).c_str(), ios_base::in | ios_base::binary);
boost::iostreams::filtering_streambuf<boost::iostreams::input> in;
in.push(boost::iostreams::gzip_decompressor());
in.push(input);
boost::iostreams::copy(in, cout);
이 코드가 실행될 때, 나의은 SourceFile이 종료 된 .gz이있는 경우. 마지막 줄은 감압 된 파일 스트림을 정확하게 출력합니다.
그러나 어떻게 압축 해제 된 파일에서 한 줄씩 가져올 수 있습니까? 내 프로그램은 압축되지 않은 경우 getline (input, transfer)을 사용하여 입력 스트림에서 행을 읽습니다.
이제 압축 해제 된 파일에서 같은 방식으로 읽으려고하지만 어떻게하면 새 줄을 가져올 수 있습니까?
부스트 decumentation은 이것으로 많은 도움이되지 못했습니다.
미리 감사드립니다.