boost::iostreams を使用して、.gz ファイルを読み取り、テキスト コンテンツを画面に出力しようとしています。これは、このライブラリについて学ぶための簡単な実験であり、IMDb (ftp://ftp.fu-berlin.de/pub/misc/movies/database/) の「directors.list.gz」ファイルを次のように使用しています。私の入力ファイル。
私のコードは MSVC-10 経由でコンパイルされますが、実行時にプロセスが中止されます。エラー コードが R6010 であることを除いて、エラー メッセージから得られる情報はあまりありません。
これを引き起こした原因と、これを機能させるにはどうすればよいかについて、誰かが私に指示してもらえますか?
このライブラリはかなりきれいに見え、正しく使用したいと思っています。助けてくれてどうもありがとう。
#include <fstream> // isalpha
#include <iostream> // EOF
#include <boost/iostreams/categories.hpp> // input_filter_tag
#include <boost/iostreams/operations.hpp> // get
#include <boost/iostreams/filtering_stream.hpp>
#include <boost/iostreams/copy.hpp>
#include <boost/iostreams/device/file_descriptor.hpp>
#include <boost/iostreams/device/file.hpp>
#include <boost/iostreams/device/array.hpp>
#include <boost/iostreams/filter/zlib.hpp>
using namespace std;
namespace io = boost::iostreams;
int main()
{
if(true)
{
string infile_path = "c:\\Temp\\directors.list.gz";
ifstream infile(infile_path, ios_base::in | ios_base::binary);
io::filtering_streambuf<io::input> in; //filter
in.push(io::zlib_decompressor());
in.push(infile);
//output to cout
io::copy(in, cout);
}
return 0;
}