Programa C para agregar contenido de un archivo de texto a otro

Prerrequisito: Manejo de Archivos en C
 

Dados los archivos de texto de origen y de destino, la tarea es agregar el contenido del archivo de origen al archivo de destino y luego mostrar el contenido del archivo de destino.
Ejemplos: 
 

Input: 

file1.text
This is line one in file1
Hello World.
file2.text
This is line one in file2
Programming is fun.

Output: 
 
This is line one in file2
Programming is fun.
This is line one in file1
Hello World.


Acercarse: 

  1. Abra file1.txt y file2.txt con la opción «a+» (añadir y leer), para que no se elimine el contenido anterior del archivo. Si los archivos no existen, se crearán.
  2. Escriba explícitamente una nueva línea («\n») en el archivo de destino para mejorar la legibilidad.
  3. Escribir contenido desde el archivo de origen al archivo de destino.
  4. Muestre el contenido en file2.txt a la consola (stdout). 
     

C

// C program to append the contents of
// source file to the destination file
// including header files
#include <stdio.h>
 
// Function that appends the contents
void appendFiles(char source[],
                 char destination[])
{
    // declaring file pointers
    FILE *fp1, *fp2;
 
    // opening files
    fp1 = fopen(source, "a+");
    fp2 = fopen(destination, "a+");
 
    // If file is not found then return.
    if (!fp1 && !fp2) {
        printf("Unable to open/"
               "detect file(s)\n");
        return;
    }
 
    char buf[100];
 
    // explicitly writing "\n"
    // to the destination file
    // so to enhance readability.
    fprintf(fp2, "\n");
 
    // writing the contents of
    // source file to destination file.
    while (!feof(fp1)) {
        fgets(buf, sizeof(buf), fp1);
        fprintf(fp2, "%s", buf);
    }
 
    rewind(fp2);
 
    // printing contents of
    // destination file to stdout.
    while (!feof(fp2)) {
        fgets(buf, sizeof(buf), fp2);
        printf("%s", buf);
    }
}
 
// Driver Code
int main()
{
    char source[] = "file1.txt",
         destination[] = "file2.txt";
 
    // calling Function with file names.
    appendFiles(source, destination);
 
    return 0;
}

Producción: 

A continuación se muestra la salida del programa anterior: 
 

Complejidad de Tiempo: O(N) 
Complejidad de Espacio Auxiliar: O(1) 

Publicación traducida automáticamente

Artículo escrito por yashbeersingh42 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *