|
|

楼主 |
发表于 2011-9-27 10:59:55
|
显示全部楼层
本帖最后由 沧海小虾 于 2011-9-27 11:01 编辑
改了一下还是没有解决,新的问题是指向打开的源文件的指针不能赋值。这是为什么呢?小弟没有调试出来,请高手再指点一下。
改后的代码:
#include <stdio.h>
#include <stdlib.h>
void CopyFile(FILE *lpSrc,FILE *lpDes,long _Size)
{
long *Buffer;
Buffer = malloc( _Size );
fread( Buffer,_Size,1,lpSrc ); //将源文件数据读到缓冲区
fwrite( Buffer,_Size,1,lpDes ); //将缓冲区的数据写入到目的文件中
free( Buffer );
}
main()
{
long Size;
FILE *LpSrcFile, *LpDesFile;
char szSrcFilename[20], szDesFilename[20];
char *lpszSF, *lpszDF;
printf( "请输入要复制的文件名:" );
gets( szSrcFilename ); //获取源文件名称
printf( "请输入复制到的文件的名称:" );
gets( szDesFilename ); //获取目的文件名称
lpszSF = szSrcFilename;
lpszDF = szDesFilename;
if( ( LpSrcFile = fopen( lpszSF,"rb" )) == NULL ) //打开源文件
printf( "The file %s was not opened",*szSrcFilename );
else
printf( "The file %S was opened successfully!",*szSrcFilename );
if( ( LpDesFile = fopen( lpszDF,"wb" ) ) == NULL )
printf( "The file %s was not opened",szDesFilename );
else
printf( "The file %S was opened successfully!",*szDesFilename );
fseek( LpSrcFile,0L,SEEK_END );
Size = ftell( LpSrcFile ); //求要复制的数据块的长度
rewind( LpSrcFile );
CopyFile( LpSrcFile, LpDesFile, Size ); //文件的复制
if( fclose( LpSrcFile ) )
printf( "The file %s was not closed",szSrcFilename );
if( fclose( LpDesFile ) )
printf( "The file %s was not closed",szDesFilename );
} |
|