将一个文件中的内容放入另一个文件中不起作用

时间:2017-10-23 03:47:35

标签: c file

我正在编写一个获取文件内容并将其反转的程序,我想将反转的输出放入output.txt文件中,但没有任何内容被复制到output.txt中 内容正在逆转,但没有复制到另一个文件。 (我创建了一个“output.txt”文件,我希望将原始文本复制到。这是我的代码:

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

int main(int argc, char *argv[]){

    FILE *fp, *fp2;
    char ch;
    int a;
    char c;
    int s;
    int i, pos;
    int choice = 0;

    fp = fopen(argv[1],"r");
    if (fp == NULL) 
    {
        printf("file doesnt exist \n");
    }

    fp2 = fopen(argv[2], "w");
        if(fp2 == NULL) {
            printf("ERRORRR");
            exit(1);
    }

    fseek(fp,0,SEEK_END);
    pos=ftell(fp);

    i = 0;
    while (i < pos){
        i++;
        fseek(fp,-i,SEEK_END);
        ch = fgetc(fp);

        printf("%c", ch);
        fputc(fp, fp2);
    }

    /*
    do {
        a = fgetc(fp);
        fputc(a,fp2);
    }
    while ( a != EOF);
    */

    return 0;
}

2 个答案:

答案 0 :(得分:1)

我认为您必须在“写入模式”下打开第二个文件。

fp2 = fopen(argv[2], "w");

就像@Sami Kuhmonen所说,行fputc(fp, fp2);有问题,因为fputc有两个论点。

fputc(int character, File *stream);

答案 1 :(得分:0)

试试这个:

while (c){
     c=getc(fp1);
     fputc(c,fp2);
}