0

ファイルを元のタイプからバイナリ形式に変換する簡単なプログラムを書いています。

ただし、次の問題があります。コードは正しくコンパイルされますが、実行するとコンソール ウィンドウが開き、自分で閉じるまで閉じません。また、コンソール ウィンドウが開いている時間が長いほど、新しく作成されたバイナリ ファイルのサイズが大きくなることに気付きました。以下は私のコードです:

#include <fstream>//to open a file

using namespace std;
int main(void){
   ifstream in("in.JPG");
   ofstream out("out.bin", ios::binary);
   double d;

   while(!in.eof()) {
      out.write((char*)&d, sizeof d);
   }
   out.close();
   in.close();

return 0;

}
4

1 に答える 1

4

から何も読み取らinないため、 にヒットする可能性はありませんeof

また、eof次の SO の質問で説明されているように、ループ条件で使用すると、誤った結果につながる可能性があります。

(一般に、何をしようとしているのかは不明です。.jpg「バイナリ」形式であるため、「.jpgファイルをバイナリに変換する」という賢明な概念はありません。)

于 2013-02-11T22:57:55.717 に答える