プレーン テキスト ヘッダーとそれに続くバイナリ イメージ情報を含むイメージ ファイルからヘッダーを削除しようとしています。これの前兆として、編集のためにファイル情報を文字列ストリームにコピーしたいと思います。これを行っているときに、いくつかの問題に遭遇したため、単にファイルを読み込んで、デバッグ目的で新しいファイルとして再度書き戻すことを試みました。これを行ったとき、新しいファイルは元のファイルよりも約 1kb 大きくなりました。UltraEdit でバイナリ比較を行うと、16 進文字 0A (ライン フィードだと思います) が表示される場所に、プログラムがその直前に 0D (キャリッジ リターン) を追加したように見えます。この動作の原因と、可能であれば回避する方法を考えていました。コード スニペットは次のとおりです。
....
std::string inputFilename = argv[1];
std::ifstream in( argv[1],ios::out | ios::binary);
if ( in )
{
std::stringstream fileStream;
fileStream<<in.rdbuf();
cout<<fileStream.str().length(); //debugging
in.close();
ofstream myfile;
myfile.open("selfoutput");
myfile<<fileStream.str();
myfile.close();
....
助けてくれてありがとう!-デビッド