在C中将文件1的内容添加到文件2

在C中将文件1的内容添加到文件2,c,C,我正在尝试将第一个文件(a.txt)的内容添加到第二个文件(b.txt)的末尾。。。但我不知道如何做到这一点。我有以下代码 int i = 0; char delims[] = " \n"; char *result = NULL; char * results[10]; result = strtok( cmdStr, delims ); while( result != NULL ) {

我正在尝试将第一个文件(a.txt)的内容添加到第二个文件(b.txt)的末尾。。。但我不知道如何做到这一点。我有以下代码

        int i = 0;
        char delims[] = " \n";
        char *result = NULL;
        char * results[10];
        result = strtok( cmdStr, delims );
        while( result != NULL ) {
            results[i] = result;
            i++;
            result = strtok(NULL, " \n");
        }

        // results[1] shows a.txt
        // results[2] shows b.txt

        FILE *fp;
        char ch;

        if((fp = fopen(results[1],"r")) == NULL) {
            printf("Cannot open file.\n");
        } else {
            ...
            // add the content of results[1] in the end of results[2]
            ...
        }
        fclose(fp);
结果[1]是文件a.txt的名称。 结果[2]是文件b.txt的名称


谢谢。

在追加模式下打开
结果[2]

FILE *fp2;

fp2 = fopen(results[2], "a");  // a is for append
然后,您可以循环遍历第一个文件并转储到第二个文件。。比如:

char line[100] = {0};
while (fgets(line,sizeof(line),fp) != NULL)
  fputs(line, fp2);

编辑:这里有一个完整的编译程序,它接受“test.txt”的内容并将其附加到“test2.txt”中:


你知道怎么读文件吗?一般情况下如何写入?大致的大纲是:打开两个文件(b.txt用于写入,a.txt用于读取)。从a.txt读取;写入b.txt;重复,直到完成。您对哪些步骤有问题?我知道它使用fputs(文件名、内容);我已经在最后的else声明中插入了。。。但是它没有做任何事情。@user1893187-然后是其他错误(请参阅编辑以获得代码的工作版本)。您是否检查了您的
结果[1]
结果[2]
是否如您所期望的那样是“a.txt”和“b.txt”?(您确定它不是
results[0]
results[1]
?)您是否检查了为追加而打开的文件是否已成功打开?你检查过你的文件里有什么东西要读吗?你试过调试器吗?谢谢。很明显,这是因为我没有这个机会。在我插入后,它工作得很好。非常感谢:)
int main(int argc, char** argv) {
    FILE *fp;
    FILE *fp2;
    char line[100] = {0};
    char * results[2] = {"test.txt", "test2.txt"};
    fp = fopen(results[0], "r");
    fp2 = fopen(results[1], "a");  // a is for append

    while (fgets(line,sizeof(line),fp) != NULL)
       fputs(line, fp2);
    fclose(fp);
    fclose(fp2);
    return 0;
}