本帖最后由 yipwing 于 2011-9-27 22:23 编辑
改了下,给你看看。。我写得也不好。。请多指教。。。 下面代码用GCC编译器测试通过。。#include <stdio.h>
#include <stdlib.h>
#include <string.h>
FILE* dstFile;FILE* srcFile;
void CopyFile(long _Size)
{
long *Buffer;
Buffer = (long*)malloc( _Size+1 );
fread( Buffer,_Size,1,srcFile ); //将源文件数据读到缓冲区
fwrite( Buffer,_Size,1,dstFile ); //将缓冲区的数据写入到目的文件中
free( Buffer );
}
int main()
{
char* szCopy = (char*)malloc(20);
char* szNewCopy = (char*)malloc(20);
long fsize;
if((szCopy==NULL) && (szNewCopy==NULL))
{
printf("分配内存出错");
}
printf("请输入要复制的文件:");
gets(szCopy);
printf("请输入复制到的文件的名称:");
gets(szNewCopy);
srcFile = fopen(szCopy,"rb");
if(srcFile!=NULL)
printf("成功打开文件");
else{
printf("打开文件失败");
return 1;
}
dstFile = fopen(szNewCopy,"wb");
if(srcFile!=NULL)
printf("成功打开文件");
else{
printf("打开文件失败");
return 1;
}
fseek(srcFile,0L,SEEK_END);
fsize = ftell(srcFile);
rewind(srcFile);
CopyFile(fsize);
fclose(srcFile);
fclose(dstFile);
return 1;
}
|