ErrorDeSintaxis

Pequeños fragmentos de código fuente en distintos lenguajes de programación, agrupados por categorías.

Puedes buscar entre los fuentes existentes, o aportar los tuyos.

C: Copiar un fichero

Ejemplo de cómo copiar contenido de un fichero en otro, usando el lenguaje C

Lenguaje: C

Categoría: Básico

/* Fuente procedente de ErrorDeSintaxis.es */
/* Ejemplo de cómo copiar contenido de un fichero */
/*  en otro, usando el lenguaje C */
/* Nivel: Básico */
/* Disponible desde 28/06/2011 */
/* Aportado por Nacho */
/* Autor original: Nacho Cabanes */
/* Web original: http://www.nachocabanes.com/c/curso/cc06.php */

#include <stdio.h>
 
FILE *fichOrg, *fichDest;        /* Los dos ficheros */
char buffer[2048];               /* El buffer para guardar lo que leo */
char nombreOrg[80],              /* Los nombres de los ficheros */
nombreDest[80];
int cantidad;                    /* El número de bytes leídos */
 
main()
{
    /* Accedo al fichero de origen */
    printf("Introduzca el nombre del fichero Origen: ");
    scanf("%s",nombreOrg);
    if ((fichOrg = fopen(nombreOrg, "rb")) == NULL)
    {
      printf("No existe el fichero origen!\n");
      exit(1);
 
    }
    /* Y ahora al de destino */
    printf("Introduzca el nombre del fichero Destino: ");
    scanf("%s",nombreDest);
    if ((fichDest = fopen(nombreDest, "wb")) == NULL)
    {
      printf("No se ha podido crear el fichero destino!\n");
      exit(1);
    }
    /* Mientras quede algo que leer */
    while (! feof(fichOrg) )
    {
      /* Leo datos: cada uno de 1 byte, todos los que me caben */
      cantidad = fread( buffer, 1, sizeof(buffer), fichOrg);
      /* Escribo tantos como haya leído */
      fwrite(buffer, 1, cantidad, fichDest);
    }
    /* Cierro los ficheros */
    fclose(fichOrg);
    fclose(fichDest);
}