c++ - boost::iostream bzip2_decompressor 不解压缩由 bzip2_compressor 压缩的文件

标签 c++ boost boost-filesystem bzip2 boost-iostreams

boost::iostream bzip2_decompressor 不解压缩由 bzip2_compressor 压缩的文件

最佳答案

这是一个简单的独立示例,展示了它的工作原理:

Live On Coliru

#include <iostream>
#include <boost/iostreams/filtering_stream.hpp>
#include <boost/iostreams/copy.hpp>
#include <boost/iostreams/filter/bzip2.hpp>
#include <sstream>

namespace io = boost::iostreams;

int main()
{
    std::stringstream ss;

    {
        io::filtering_stream<io::output> of;
        of.push(io::bzip2_compressor{});
        of.push(ss);

        io::copy(std::cin, of);
    }

    std::cout << "Compressed input: " << ss.str().size() << " bytes\n";

    ss.seekg(0ul);
    {
        io::filtering_stream<io::input> if_;
        if_.push(io::bzip2_decompressor{});
        if_.push(ss);

        io::copy(if_, std::cout);
    }
}

在 Coliru 上它显示它自己压缩到 331 字节,然后再次返回到 stdout

也许你忘记刷新,有非二进制,空格跳过。没有 SSCCE 我们无法判断

关于c++ - boost::iostream bzip2_decompressor 不解压缩由 bzip2_compressor 压缩的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31516315/

相关文章:

c++ - 使用 Boost.Filesystem 获取平台的路径分隔符

c++ - 在屏幕上移动图像

c++ - QTCreator 中的运算符>>不匹配

c++ - 在下面的这种情况下,是否有任何理由从使用 const char* 更改为 string

c++ - 使用 BoostRegex C++ 的正则表达式

c++ - 使用 boost 编译时出错

c++ - 在不存在的目录中创建文件的最佳方法

c++ - 测量 C++ 中并发代码使用的内存消耗

c++ - 使用 boost::serialize 反序列化多个值(使用 SSCCE)

c++ - boost/random/uniform_int.hpp 和 boost/random/uniform_int_distribution.hpp 可以互换使用吗?