Programación General > C/C++
Ejercicio de Funciones
barricade:
Estoy atrancado con la copia de ficheros, se copiar un archivo a otro como podeis ver en el siguiente codigo, Pero lo que me cuesta es saber como copio los datos que se encuentran el archivo al otro, pero solo los que yo quiera, como
me pide en el ejercicio de funciones apartado B.
--- Código: C++ --- #include <stdio.h> /* printf (), gets (), fprintf (), stderr, EOF,fopen (), fclose (), fgetc (), fputc (), NULL */ #include <conio.h> /* getch () */#include <string.h> /* strcpy () */#include <ctype.h> /* toupper () */ #define BOOLEAN int#define TRUE 1#define FALSE 0 #define ESC 27#define ENTER 'r' #define NUMMAXCARACTERES 255 void main (void){BOOLEAN salir = FALSE;char nombre_fichero_entrada[NUMMAXCARACTERES],nombre_fichero_salida[NUMMAXCARACTERES];FILE *pfe, *pfs; /* punteros a fichero de entrada y fichero desalida resp. */char ch; while (! salir){puts ("nnCOPIAR FICHERO CON EL SISTEMA DE FICHEROS DE ALTO NIVEL:n");printf ("Introduzca nombre de fichero de entrada (ENTER o CON ""para teclado): ");gets (nombre_fichero_entrada);if (*nombre_fichero_entrada == '')strcpy (nombre_fichero_entrada, "con");printf ("Introduzca nombre de fichero de salida (ENTER o CON ""para pantalla): ");gets (nombre_fichero_salida);if (*nombre_fichero_salida == '')strcpy (nombre_fichero_salida, "con");if ((pfe = fopen (nombre_fichero_entrada, "r")) == NULL)fprintf (stderr, "nERROR: No es posible abrir el fichero de ""entrada %s.n", nombre_fichero_entrada);else if ((pfs = fopen (nombre_fichero_salida, "w")) == NULL){fprintf (stderr, "nERROR: No es posible abrir el fichero ""de salida %s.n", nombre_fichero_salida);fclose (pfe);}else{int c;while ((c = fgetc (pfe)) != EOF)fputc (c, pfs); fclose (pfe);fclose (pfs);} printf ("nn¿Desea copiar otro fichero (S o ENTER: Sí; N o ""ESC: No)? ");do{ch = getch ();} while (ch != ENTER && toupper (ch) != 'S' &&ch != ESC && toupper (ch) != 'N');salir = ch == ESC || toupper (ch) == 'N';}}
LeGatoRojo:
Hay muchas maneras, pero yo prefiero las funciones fread y fwrite, todo dentro de un while usando EOF. Tambien puedes usar system("comando de consola")
Navegación
[*] Página Anterior
Ir a la versión completa