gonzalob

Untitled

Jun 9th, 2020
864
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.61 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "pila.h"
  4.  
  5. typedef struct {
  6.      int legajo;
  7.      char nombreYapellido [30];
  8.      int edad;
  9.      int anio;
  10. //año que cursa, recordar que no podemos utilizar la ñ para definir variables
  11. } stAlumno;
  12.  
  13. void cargarArchivo(char nombreArchivo[20]);
  14. stAlumno cargarUnAlumno();
  15. void leerArchivo(char nombreArchivo[20]);
  16. void mostrarUnAlumno(stAlumno aux);
  17.  
  18. int main()
  19. {
  20.     char nombreArchivo[] = "alumnos.dat";
  21.     cargarArchivo(nombreArchivo);
  22.  
  23.     return 0;
  24. }
  25.  
  26. /*
  27. Crear una función que cargue un archivo de alumnos.
  28. Abrirlo de manera tal de verificar si el archivo ya está creado previamente.
  29.  Cargar el archivo con 5 datos. Cerrarlo dentro de la función
  30. */
  31.  
  32. void cargarArchivo(char nombreArchivo[20])
  33. {
  34.     FILE * archi = fopen(nombreArchivo,"rb");
  35.     if (archi == NULL) //el archi no esta!
  36.     {
  37.         archi = fopen(nombreArchivo,"wb");
  38.         if (archi != NULL) //no hay error de escritura
  39.         {
  40.             int cantidadDeDatos = 2;
  41.             int datosCargados = 0;
  42.             for (datosCargados = 0;datosCargados<cantidadDeDatos;datosCargados++)
  43.             {
  44.                  stAlumno aux = cargarUnAlumno();
  45.                  fwrite(&aux,sizeof(stAlumno),1,archi);
  46.             }
  47.         }
  48.     }
  49.     else
  50.         {
  51.             printf("el archi esta con datos\n");
  52.             leerArchivo(nombreArchivo);
  53.         }
  54.  
  55.         fclose(archi);
  56. }
  57.  
  58. stAlumno cargarUnAlumno()
  59. {
  60.     stAlumno aux;
  61.  
  62.     printf("ingrese legajo\n");
  63.     fflush(stdin);
  64.     scanf("%d",&aux.legajo);
  65.  
  66.     printf("ingrese nombre Y apellido \n");
  67.     fflush(stdin);
  68.     scanf("%s",&aux.nombreYapellido);
  69.  
  70.     printf("ingrese edad \n");
  71.     fflush(stdin);
  72.     scanf("%d",&aux.edad);
  73.  
  74.      printf("ingrese anio \n");
  75.     fflush(stdin);
  76.     scanf("%d",&aux.anio);
  77.  
  78.     return aux;
  79. }
  80.  
  81. /*
  82. Crear una función que muestre por pantalla
  83. los registros de un archivo de alumnos. Modularizar.
  84. */
  85.  
  86. void leerArchivo(char nombreArchivo[20])
  87. {
  88.     FILE * archi = fopen(nombreArchivo,"rb");
  89.     if (archi != NULL) //el archi  esta!
  90.     {
  91.         stAlumno alumnoLector;
  92.         while (fread(&alumnoLector,sizeof(stAlumno),1,archi)>0)
  93.         {
  94.             mostrarUnAlumno(alumnoLector);
  95.         }
  96.     }
  97.     else
  98.     {
  99.         printf("el archivo no existeee\n");
  100.     }
  101.  
  102. }
  103.  
  104. void mostrarUnAlumno(stAlumno aux)
  105. {
  106.     printf("***************\n");
  107.     printf("legajo -> %d\n",aux.legajo);
  108.     printf("nombre Y apellido -> %s\n",aux.nombreYapellido);
  109.     printf("edad -> %d\n",aux.edad);
  110.     printf("anio -> %d\n",aux.anio);
  111.     printf("***************\n");
  112. }
Advertisement
Add Comment
Please, Sign In to add comment