ファイルmyfile.txtの内容をcの2番目のファイル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);