Estoy tratando de agregar el contenido de un archivo myfile.txt al final de un segundo archivo myfile2.txt en c. Puedo copiar el contenido, pero no puedo encontrar una manera de agregar. Aquí está mi código:
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);
No creo que esté usando fseek correctamente, pero lo que estoy tratando de hacer es llamar a fseek para colocar el puntero al final del archivo, luego escribir en la ubicación de ese puntero, en lugar de al principio del archivo. expediente. ¿Es este el enfoque correcto?
(Además de las respuestas a continuación) Su
fseek
la idea debería funcionar, pero como usasSEEK_END
el ‘puntero’ ya está al final– y luego vas “atrás” 100 caracteres. Utilizar0
para el desplazamiento y debería funcionar. (Menor: verifica si su archivo de lectura puede abrirse, pero no su archivo de escritura. Verifique ambos).– Jongware
17/10/2013 a las 14:27
¿Por qué while (! Feof (archivo)) nunca es correcto
– usuario3629249
20 de mayo de 2019 a las 1:50
Un error tipográfico en la línea 12, la llave no está cerrada
– hachís
6 de julio de 2020 a las 2:15