Я написал приложение Logparser и теперь хочу реализовать распаковку файлов .gz.Я пробовал это с boost :: iostreams и zlib, который, кажется, работает, но я не знаю, как обрабатывать ввод, полученный из сжатых файлов.
Вот что я делаю:
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);
Этот код запускается, если мой исходный файл имеет окончание .gz.Последняя строка правильно выводит распакованный файловый поток в cout.
Но как я могу извлечь строку за строкой из распакованного файла?Моя программа использует getline (ввод, передача) для чтения строк из входного потока, если он не сжат.
Теперь я хочу прочитать из распакованного файла таким же образом, но как я могу получить новую строку изin?
Усиление decumentation мне не сильно помогло с этим.
Заранее спасибо!