txt por linea lenguaje leer guardar fputs ejercicios datos binarios archivos archivo c file append fseek

por - guardar y leer datos en un archivo.txt en c



Anexar al final de un archivo en C (2)

Abrir con adjuntar:

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

luego simplemente escriba a pFile2 , no es necesario fseek() .

Estoy tratando de adjuntar 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 adjuntar. 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 poner el puntero al final del archivo, luego escribir en la ubicación de ese puntero, en lugar de al principio del archivo. ¿Es este el enfoque correcto?


Siguiendo la documentación de fopen :

`` a '''' Abierto para escribir. El archivo se crea si no existe. La secuencia se coloca al final del archivo. Las escrituras subsiguientes en el archivo siempre terminarán al final del archivo actual en ese momento, independientemente de cualquier intervención (3) o similar.

Así que si pFile2=fopen("myfile2.txt", "a"); La secuencia se coloca al final para adjuntar automáticamente. solo haz:

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);