首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

帮小弟我看看 这段程序

2012-03-07 
帮我看看 这段程序#includestdio.hlonggetfilelength(FILE*fp){fseek(fp,0,SEEK_END)returnftell(fp)}

帮我看看 这段程序
#include   <stdio.h>
long   getfilelength(FILE*   fp)
{
    fseek(fp,0,SEEK_END);
    return   ftell(fp);
}
void   main()
{
  unsigned   char   a[1];
  FILE*   file1;
  FILE*   file2;
  FILE*   fp;
  long   i;
  char   filename[20]= "D:\b6b2e7c1.jpg ";

  fp=fopen(filename, "rb ");
  if((file2=fopen( "D:\mjken.jpg ", "wb "))==NULL)
  {
    printf( "haha ");
  }
  file1=fp;
  for(i=0;i <getfilelength(file1);i++)
  {
          fread(a,1,1,fp);
          fwrite(&a,1,1,file2);
  }
        system( "pause ");
}
 
这个代码是想对图片进行copy  
但copy出来的图片是有问题  
大家看看代码应该如何调试

[解决办法]
#include <stdio.h>
long getfilelength(FILE* fp)
{
fseek(fp,0,SEEK_END);
return ftell(fp);
}
void main()
{
char a[1];
long m;
FILE* file1;
FILE* file2;
FILE* fp;
long i;
char filename[20]= "E:\\1.jpg ";

fp=fopen(filename, "rb ");
if((file2=fopen( "E:\\mjken.jpg ", "wb "))==NULL)
{
printf( "haha ");
}
file1=fp;
m=getfilelength(file1);
fseek(fp,0,SEEK_SET);//文件要重新定位
for(i=0;i <m;i++) //建议使用while(!feof(fp))快一些
{
if(fread(a,1,1,fp))
fwrite(&a,1,1,file2);
}
//system( "pause ");
}

热点排行