帮我看看 这段程序
#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 ");
}