注册 登录
编程论坛 C语言论坛

求文件复制到另一个文件的问题的解

aCprogrammer 发布于 2019-06-26 17:12, 1778 次点击
#include<stdio.h>
#include<stdlib.h>
int main()
{
    FILE *fp,*lj;
    char a[10],b[10],ch;
    printf("请输入被粘贴的文件:");
    scanf("%s",a);//输入被粘贴文件名
    printf("请输入要复制的文件:");
    scanf("%s",b);//输入要复制的文件名
    if(!(fp=fopen(a,"at")))//以追加形式打开被粘贴文件
    {
        printf("Can not open the file %s",a);
        system("pause");
        exit(0);
    }
    if(!(lj=fopen(b,"at")))//以追加形式打开要复制的文件
    {
        printf("Can not open the file %s",b);
        system("pause");
        exit(0);
    }
    while(ch=fgetc(lj)!=EOF)//从被复制的文件中读取字符并传到被粘贴文件中
    {
        fputc(ch,fp);
    }
    fclose(lj);
    fclose(fp);
    printf("Done!\n");
    system("pause");
    return 0;
}
请大神帮忙看一下哪错了

[此贴子已经被作者于2019-6-26 18:21编辑过]

4 回复
#2
rjsp2019-06-27 08:40
#include <stdio.h>

int main( void )
{
    char src[260], dst[260];
    printf( "%s", "请输入要复制的文件: " );
    scanf( "%s", dst );
    printf( "%s", "请输入被粘贴的文件: " );
    scanf( "%s", src );

    FILE* fdst = fopen( dst, "ab" );
    if( !fdst )
    {
        printf( "Can not open the file %s\n", dst );
        return 1;
    }

    FILE* fsrc = fopen( src, "rb" );
    if( !fsrc )
    {
        fclose( fdst );
        printf( "Can not open the file %s\n", src );
        return 1;
    }

    for( int ch; (ch=fgetc(fsrc))!=EOF; )
    {
        fputc( ch, fdst );
    }

    fclose( fsrc );
    fclose( fdst );
    puts( "Done!" );

    return 0;
}
#3
aCprogrammer2019-06-27 13:19
回复 2楼 rjsp
不能以文本格式打开吗
#4
rjsp2019-06-27 13:29
以下是引用aCprogrammer在2019-6-27 13:19:31的发言:

不能以文本格式打开吗
能,但为什么要以文本方式打开?
#5
aCprogrammer2019-06-27 21:30
回复 4楼 rjsp
老师要求不用二进制的方式试着做一个……
1