C++ Boost-Zlib滤波器错误

C++ Boost-Zlib滤波器错误,c++,boost,C++,Boost,我正在尝试使用Boost Zlib过滤器库,但有一些问题。我正在使用代码块和GNU GCC进行编译。下面是我正在测试的示例代码 #include <fstream> #include <iostream> #include <boost/iostreams/filtering_streambuf.hpp> #include <boost/iostreams/copy.hpp> #include <boost/iostreams/filter/

我正在尝试使用Boost Zlib过滤器库,但有一些问题。我正在使用代码块和GNU GCC进行编译。下面是我正在测试的示例代码

#include <fstream>
#include <iostream>
#include <boost/iostreams/filtering_streambuf.hpp>
#include <boost/iostreams/copy.hpp>
#include <boost/iostreams/filter/zlib.hpp>

int main()
{
    using namespace std;
    using namespace boost::iostreams;

    ifstream file("hello.z", ios_base::in | ios_base::binary);
    filtering_streambuf<input> in;
    in.push(zlib_decompressor());
    in.push(file);
    copy(in, cout);

    return 0;
}
#包括
#包括
#包括
#包括
#包括
int main()
{
使用名称空间std;
使用名称空间boost::iostreams;
ifstream文件(“hello.z”,ios_base::in | ios_base::binary);
过滤_streambuf in;
in.push(zlib_decompressor());
in.push(文件);
复印件(在,库特);
返回0;
}
在代码块链接器设置中,我链接了z、boost_系统、boost_iostreams

由于某种原因,当我运行代码时,我得到了以下错误

terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::iostreams::zlib_error> >'
  what():  zlib error

Process returned -1 (0xFFFFFFFF)  execution time : 0.136 s
terminate在抛出“boost::exception\u detail::clone\u impl”的实例后调用
什么():zlib错误
返回的进程-1(0xFFFFFFFF)执行时间:0.136秒

调试器告诉您什么?该异常包含什么错误代码?当我编译调试器时,不会抛出错误。对不起,我是C++新手,我不确定你的第二个问题是什么意思。你应该在C++中使用一些例外,并使用调试器。a) 调试器与编译无关。您可以在调试器中运行已编译和链接的可执行文件,告诉它在发生错误时中断。然后,您将在此时检查程序的状态,以了解有关问题的更多细节。b) 您将捕获抛出的异常(
zlib_error
)[。此类有一个名为
error()
…您可以使用此方法获取一个名为的方法,该方法将告诉您更多有关失败原因的信息。输入流中可能有尾随字节。您是否尝试使用使用使用
zlib_compressor
生成的文件?