SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: barricade en Martes 16 de Noviembre de 2010, 16:58

Título: Ejercicio de Funciones
Publicado por: barricade en Martes 16 de Noviembre de 2010, 16:58
Una entidad bancaria posee en un fichero la siguiente informacion para un conjunto de personas:

Nombre.
Numero de cuenta.
Credito solicitado.

El progrma funcionara basandose en un menu utilizando funciones con las siguientes operaciones:

A) Añadir un credito al archivo.
B) Copiar en otro fichero el conjunto de personas que hayan solicitado un credito superior a cierta cantidad establecida por el banco (la cual debera ser introducida por teclado).
C) Visualizar todo el contenido de un archivo.
Título: Re: Ejercicio de Funciones
Publicado por: m0skit0 en Martes 16 de Noviembre de 2010, 17:14
Te digo lo mismo que en el otro: no se hace la tarea  :no:
Título: Re: Ejercicio de Funciones
Publicado por: LeGatoRojo en Martes 16 de Noviembre de 2010, 17:58
Se nota que el fin de curso se aproxima XD
Título: Re: Ejercicio de Funciones
Publicado por: barricade en Miércoles 17 de Noviembre de 2010, 12:55
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.

#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 de
                   salida 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';
    }
}
Título: Re: Ejercicio de Funciones
Publicado por: m0skit0 en Miércoles 17 de Noviembre de 2010, 13:11
Usa las etiquetas de código y pon tu código formateado si esperas que alguien lo lea.
Título: Re: Ejercicio de Funciones
Publicado por: barricade en Miércoles 17 de Noviembre de 2010, 15:12
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++
  1.  
  2. #include <stdio.h> /* printf (), gets (), fprintf (), stderr, EOF,
  3. fopen (), fclose (), fgetc (), fputc (), NULL */
  4.  
  5. #include <conio.h> /* getch () */
  6. #include <string.h> /* strcpy () */
  7. #include <ctype.h> /* toupper () */
  8.  
  9. #define BOOLEAN int
  10. #define TRUE 1
  11. #define FALSE 0
  12.  
  13. #define ESC 27
  14. #define ENTER 'r'
  15.  
  16. #define NUMMAXCARACTERES 255
  17.  
  18. void main (void)
  19. {
  20. BOOLEAN salir = FALSE;
  21. char nombre_fichero_entrada[NUMMAXCARACTERES],
  22. nombre_fichero_salida[NUMMAXCARACTERES];
  23. FILE *pfe, *pfs; /* punteros a fichero de entrada y fichero de
  24. salida resp. */
  25. char ch;
  26.  
  27. while (! salir)
  28. {
  29. puts ("nnCOPIAR FICHERO CON EL SISTEMA DE FICHEROS DE ALTO NIVEL:n");
  30. printf ("Introduzca nombre de fichero de entrada (ENTER o CON "
  31. "para teclado): ");
  32. gets (nombre_fichero_entrada);
  33. if (*nombre_fichero_entrada == '')
  34. strcpy (nombre_fichero_entrada, "con");
  35. printf ("Introduzca nombre de fichero de salida (ENTER o CON "
  36. "para pantalla): ");
  37. gets (nombre_fichero_salida);
  38. if (*nombre_fichero_salida == '')
  39. strcpy (nombre_fichero_salida, "con");
  40. if ((pfe = fopen (nombre_fichero_entrada, "r")) == NULL)
  41. fprintf (stderr, "nERROR: No es posible abrir el fichero de "
  42. "entrada %s.n", nombre_fichero_entrada);
  43. else if ((pfs = fopen (nombre_fichero_salida, "w")) == NULL)
  44. {
  45. fprintf (stderr, "nERROR: No es posible abrir el fichero "
  46. "de salida %s.n", nombre_fichero_salida);
  47. fclose (pfe);
  48. }
  49. else
  50. {
  51. int c;
  52. while ((c = fgetc (pfe)) != EOF)
  53. fputc (c, pfs);
  54.  
  55. fclose (pfe);
  56. fclose (pfs);
  57. }
  58.  
  59. printf ("nn¿Desea copiar otro fichero (S o ENTER: Sí; N o "
  60. "ESC: No)? ");
  61. do
  62. {
  63. ch = getch ();
  64. } while (ch != ENTER && toupper (ch) != 'S' &&
  65. ch != ESC && toupper (ch) != 'N');
  66. salir = ch == ESC || toupper (ch) == 'N';
  67. }
  68. }
  69.  
Título: Re: Ejercicio de Funciones
Publicado por: LeGatoRojo en Jueves 18 de Noviembre de 2010, 22:35
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")