将文件转换为二进制c ++ studio 2012的问题

时间:2013-02-11 22:56:49

标签: c++ binary jpeg

我正在编写一个简单的程序,将文件从原始类型转换为二进制形式。

但是,我遇到了以下问题。代码编译正确,但是当我运行它时,控制台窗口打开,永远不会关闭,直到我自己关闭它。此外,我注意到控制台窗口保持打开的时间越长,我新创建的二进制文件的大小就越大。以下是我的代码:

#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;

}

1 个答案:

答案 0 :(得分:4)

您从未阅读in中的任何内容,因此无法点击eof

此外,在循环条件中使用eof可能会导致错误的结果,如以下SO问题所述:Why is iostream::eof inside a loop condition considered wrong?

(一般来说,目前还不清楚你要做什么。.jpg是一种'二进制'格式,没有合理的概念'将.jpg文件转换为二进制'。)