0、..、2^32-1の範囲の符号なし整数を含むテキストファイルがあります。 各行には1つの整数(改行文字)が含まれています。符号なし整数を含むファイルを読み込み、C++でバイナリに書き込む
スペースを節約するためにバイナリファイルに書きたいとします(各intが正確に4バイトを取るようにします)。何をするのが最善の方法でしょうか?
私はいくつかのオプションを試しましたが、どれも動作していないようです。ヘルプは高く評価されます。
現在の(非動作)コードは: g++ compress.cc -o compress
:
#include <fstream>
#include <iostream>
#include <stdio.h>
int main(){
int x;
while (std::cin >> x){
fwrite((void*)&x, sizeof(x), 1, stdout);
}
return 0;
}
これは、使用してコンパイルされます。
ただし、最初の整数だけが出力されているようです。
は例えば、私は「BLA」は
1864754174
2150244390
1703231727
コマンドの結果4
でし含むファイルであるコマンド./compress < bla | wc -c
を走っており、私は期待できない12
として。
何を試しましたか?今、この質問は私にコードを与えているだけです。ほとんど落とされ、閉鎖されます。あなたの質問を編集することを忘れないでください。 –
@Ben - あなたのコメントのために、コードを追加しました。 –
これでうまくいきません。 [MCVE](http://stackoverflow.com/help/mcve) –