注册 登录
编程论坛 C++教室

十进制文件转换为二进制文件?

edongliang 发布于 2010-07-04 15:22, 966 次点击
大家好:
我想程序实现 十进制的文件转换为二进制文件,接着在把这个二进制文件转换为十进制(可能有人会说我这是啥程序,转来转去又回到原来的了,我这个是要把二进制文件给别人,自己留着十进制文件),希望大家帮助!
具体如下:
例如input是我自己手动输入的十进制的文件里面有
12.0
34.0
56.0
这样的十进制数据

然后需要把上面的数据转换成二进制的数据文件out1,

最后我要把out1中的数据读取出来,一次读取一个数据,转换为十进制数据,并将它存储到out2中:
我写了一个十进制转换为二进制的程序,当文件是int型时没有任何错误,但是当文件数据为double型时就有错误了,代码如下:
#include <stdio.h>
FILE *fi,*fo;
double v;
int main() {
  fi=fopen("INPUT","r");
  if (NULL==fi) {
  printf("Can not find file INPUT\n");
  return 1;
  }
  fo=fopen("OUTPUT","wb");
  if (NULL==fo) {
  printf("Can not create file OUTPUT\n");
  fclose(fi);
  return 2;
  }
  while (1) {
  if (feof(fi)) break;
  if (1==fscanf(fi,"%lf",&v)) {
  fwrite(&v,sizeof(double),1,fo);
  } else {
  fscanf(fi,"%*c");
  }
  }
  fclose(fo);
  fclose(fi);
  return 0;
}
0 回复
1