このコードはコンパイルされ実行されます。これは単にコンテンツ をバイナリ形式で出力します。しかし、出力は私が期待していたものと異なります:出力ストリームで作成されたバイナリ出力ファイルの内容
- 出力ファイルのサイズは、std :: coutで作成したものよりもはるかに小さくする必要があります。
- 出力ファイルの内容は、私たちがエディタで開くと、 は、我々はコンテンツを見ることができないようにする必要があり、したがって、圧縮されなければなりません。
しかし、私はそれがない期待して以下のコードは実行されませんなぜですか?それに応じてどうすれば修正できますか?
#include <iostream>
#include <vector>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;
void WriteStr2BinFh(const string& St, ostream &fn)
{
fn.write(St.c_str(), St.length());
}
int main (int arg_count, char *arg_vec[]) {
vector <string> Tags;
// In principle we have millions of such tags
// Hence we need to compress it into binary output.
Tags.push_back("0000000000");
Tags.push_back("0000101110");
Tags.push_back("0133030122");
Tags.push_back("0133132033");
Tags.push_back("1002013320");
Tags.push_back("1111111111");
Tags.push_back("1301013133");
Tags.push_back("3010112111");
Tags.push_back("3203012113");
Tags.push_back("3203012212");
//prn_vec<string>(Tags, "\t");
//cout << endl;
ofstream outfile;
outfile.open("MyOut.bin", ios::binary|ios::out);
for (unsigned i=0; i <Tags.size(); i++) {
WriteStr2BinFh(Tags[i]+"\t",outfile);
}
outfile.close();
return 0;
}
私はC++プログラマではありませんが、私は本当に誰もパックとのインターフェースを作成するクラスを作成していないことに本当に驚いています。この質問はかなりGoogleに表示されます。 –