附加到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);