附加到C中的文件末尾

我正在尝试将文件myfile.txt的内容追加到c中第二个文件myfile2.txt的末尾。 我可以复制内容,但我找不到附加的方法。 这是我的代码:

FILE *pFile; FILE *pFile2; char buffer[256]; pFile=fopen("myfile.txt", "r"); pFile2=fopen("myfile2.txt", r+); if(pFile==NULL) { perror("Error opening file."); } else { while(!feof(pFile)) { if(fgets(buffer, 100, pFile) != NULL) { fseek(pFile2, -100, SEEK_END); fprintf(pFile2, buffer); } } fclose(pFile); fclose(pFile2); 

我不认为我正在使用fseek,但我想要做的是调用fseek将指针放在文件的末尾,然后写入该指针的位置,而不是在该指针的开头。文件。 这是正确的方法吗?

打开并附加:

 pFile2 = fopen("myfile2.txt", "a"); 

然后只需写入pFile2 ,不需要fseek()

遵循fopen的文档:

“a”开放写作。 如果文件不存在,则创建该文件。 流位于文件的末尾。 对文件的后续写入将始终在当前文件的末尾,无论是否有任何介入的fseek(3)或类似内容。

所以如果你pFile2=fopen("myfile2.txt", "a"); 流定位在末尾以自动追加。 做就是了:

 FILE *pFile; FILE *pFile2; char buffer[256]; pFile=fopen("myfile.txt", "r"); pFile2=fopen("myfile2.txt", "a"); if(pFile==NULL) { perror("Error opening file."); } else { while(fgets(buffer, sizeof(buffer), pFile)) { fprintf(pFile2, "%s", buffer); } } fclose(pFile); fclose(pFile2);