beyondabcd 发表于 2007-9-1 09:50

文件复制程序,错在那

<P> #include&lt;stdio.h&gt;<BR>#include&lt;math.h&gt;<BR>#include&lt;dos.h&gt;<BR>#include &lt;dir.h&gt;<BR>#include&lt;graphics.h&gt;<BR>#include &lt;string.h&gt;<BR> #include &lt;stdio.h&gt;<BR>  #include &lt;fcntl.h&gt;<BR>   #include &lt;io.h&gt; </P>
<P><BR>void main()<BR>{<BR>   char s[]="sub_1.bmp";<BR>   struct  ffblk C_ffblk;<BR>   char C_path[30],D_path[20];<BR>   FILE *C_fp,*D_fp;</P>
<P>        strcpy(C_path, "C:\\TURBOC2\\");<BR>        strcat(C_path,s);   /*复制要拷贝的路径和文件名*/<BR>        strcpy(D_path, "h:\\" );<BR>        strcat(D_path,s); printf("C=%s,D=%s",C_path,D_path);<BR>        if((C_fp=fopen(C_path,"r"))==NULL)   printf("can't open this source file");    /*源文件只读*/<BR>        if((D_fp=fopen(D_path,"w"))==NULL)   printf("can't open this objective file"); /*目标文件可写*/         <BR>        datacopy(C_fp,D_fp);<BR>        fclose(C_fp);   fclose(D_fp);<BR>}<BR>/****************************  文件拷贝****************************************/<BR>datacopy(FILE *rbfp,FILE *wbfp)       /**rbfp=read file  wbfp=write file **/<BR>    {    int ch1;<BR>     ch1 = fgetc(rbfp); <BR>    while(ch1!=EOF)<BR>    {    fputc(ch1,wbfp);     ch1 = fgetc(rbfp); fputc(ch1,wbfp);   }<BR>      <BR>}<BR>大家帮我看看,这个复制文件的程序为什么不行呀,和实际原来的文件大小不一样呀?如何动态的复制文件</P>

ba_wang_mao 发表于 2007-9-3 16:43

<P>1.以读方式打开源文件,得到文件句柄<BR>2.以读+写方式打开目标文件,得到文件句柄<BR>3.while (1)<BR>  3.1 读源文件1024字节到缓冲区Buffer<BR>  3.2 如果实际读的字节数&lt;1024,则表示已经读到文件尾<BR>  3.3 写缓冲区Buffer到目标文件<BR>  3.4 IF 已经读到文件尾,THEN<BR>         break;<BR>      ENDIF <BR>4.关闭源文件<BR>5.关闭目标文件  </P>

页: [1]

编程论坛