Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct
- {
- int numero;
- char nombre_calle[10];
- }direccion;
- typedef struct
- {
- int edad;
- char nombre[10];
- direccion miDireccion;
- }alumno;
- alumno cargarUnAlumno();
- int cargarFacultad(alumno alumnos[10], int TAM);
- void mostrarArreglo(alumno alumnos[10], int validos);
- void guardarEnUnArchivo(alumno alumnos[10], int validos, char nombreArchivo[10]);
- int leerUnArchivo(alumno alumnos[10], char nombreArchivo[10]);
- int main()
- {
- alumno alumnos[10]; //la facultad
- alumno alumnosMayores[10]; //la facultad
- int validos = cargarFacultad(alumnos,10);
- mostrarArreglo(alumnos,validos);
- guardarEnUnArchivo(alumnos,validos,"todalafacultad.dat");
- int validosMayores = leerUnArchivo(alumnosMayores,"todalafacultad.dat");
- printf("solo mayores\n");
- mostrarArreglo(alumnosMayores,validosMayores);
- return 0;
- }
- int cargarFacultad(alumno alumnos[10], int TAM)
- {
- alumno aux;
- char mander = 's';
- int validos = 0;
- while ((mander == 's') && (validos < TAM))
- {
- //cargar un alumno
- aux = cargarUnAlumno();
- alumnos[validos] = aux;
- validos++;
- printf("desea seguir?\n");
- fflush(stdin);
- scanf("%c",&mander);
- }
- return validos;
- }
- alumno cargarUnAlumno()
- {
- alumno aux;
- printf("ingrese nombre\n");
- fflush(stdin);
- gets(aux.nombre);
- printf("ingrese edad\n");
- fflush(stdin);
- scanf("%d",&aux.edad);
- return aux;
- }
- void mostrarArreglo(alumno alumnos[10], int validos)
- {
- int i = 0;
- alumno aux;
- for (i = 0;i<validos;i++)
- {
- printf("nombre: %s\n",alumnos[i].nombre);
- printf("edad: %d\n",alumnos[i].edad);
- aux = alumnos[i];
- //mostrarUnAlumno(aux);
- }
- }
- void mostrarUnAlumno(alumno aux)
- {
- printf("nombre: %s\n",aux.nombre);
- printf("edad: %d\n",aux.edad);
- }
- void guardarEnUnArchivo(alumno alumnos[10], int validos, char nombreArchivo[10])
- {
- FILE * archi = fopen(nombreArchivo,"wb"); //rb // ab //a+b //r+b //w+b
- alumno alumnoLector;
- if (archi != NULL)
- {
- int indice = 0;
- for (indice = 0;indice<validos;indice++)
- {
- alumnoLector = alumnos[indice];
- fwrite(&alumnoLector,sizeof(alumno),1,archi);
- }
- fclose(archi);
- }
- //fclose(archi);
- }
- int leerUnArchivo(alumno alumnos[10], char nombreArchivo[10])
- {
- FILE * archi = fopen(nombreArchivo,"rb"); //rb // ab //a+b //r+b //w+b
- int indice = 0;
- alumno alumnoLector;
- if (archi != NULL)
- {
- while (fread(&alumnoLector,sizeof(alumno),1,archi)>0)
- {
- if (alumnoLector.edad > 18)
- {
- alumnos[indice] = alumnoLector;
- indice++;
- }
- }
- fclose(archi);
- }
- //fclose(archi);
- return indice;
- }
Advertisement
Add Comment
Please, Sign In to add comment