while循环在文件复制中不起作用

时间:2018-03-10 14:18:56

标签: c loops

我正在尝试使用此代码将file1复制到file2的内容

#include<string.h>
#include<stdio.h>
#include<stdlib.h>

int main(){   
    FILE *fs,*ft;
    int ch;
    fs=fopen("C:\\Users\\BRAHMA JAISWAL\\Desktop\\a.txt","a+");
    if(fs==NULL){
        puts("Unable to open Source file");
        exit(1);
    }
    ft=fopen("C:\\Users\\BRAHMA JAISWAL\\Desktop\\b.txt","wb");
    if(ft==NULL)
    {
        puts("Unable to open TArget File");
       fclose(ft);
        exit(1);
    }

    puts("Enter anything which you want to write in source file:");
    int a;
    scanf("%d",&a);
    fprintf(fs,"%d",a);

    while(1)
    {
        ch=fgetc(fs);
        if(ch==EOF)break;
        fputc(ch,ft);
    }

    fclose(ft);
    fclose(fs);
    return 0;
}

它不起作用(file1的内容不会被复制到file2)但是当我删除这部分代码时它才能正常工作。

puts("Enter anything which you want to write in a source file:");
int a;
scanf("%d",&a);
fprintf(fs,"%d",a);

任何人都能说出问题吗?

1 个答案:

答案 0 :(得分:1)

您的fprintf(fs,"%d",a);实际上是打印到源文件,而不是目标文件。

源文件可能应该以{{1​​}}模式而不是r打开。