Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct
- {
- //No hay codigo de ningun tipo
- int matricula;
- char genero;
- char nombre[50];
- int dni;
- } alumno;
- //Prototipado
- alumno cargarAlmuno();
- void mostrarAlumno (alumno alumnoA);
- int cargarMuchosAlumnos (alumno alumnoB[30], int lim);
- void mostrarArregloDeAlumnos (alumno alumnos[30], int dim);
- int main()
- {
- //leer("archivoAlumno.dat");
- alumno gonzalo;
- gonzalo.dni = 3;
- alumno martin;
- martin.dni = 4;
- // escribir("archivoAlumno1.dat",gonzalo);
- // escribir("archivoAlumno1.dat",martin);
- leer("archivoAlumno.dat");
- return 0;
- }
- void leer(char nombreArchi[50])
- {
- FILE * buffer;
- alumno alumno_tem;
- buffer = fopen(nombreArchi,"rb"); //lo abre y deja el cursor al inicio
- if (buffer!=NULL)
- {
- while (fread(&alumno_tem,sizeof(alumno),1,buffer)>0)
- {
- //todo con estructuras
- printf("%d\n",alumno_tem.dni);
- }
- fclose(buffer);
- }
- else
- {
- printf("no se pudo abrir\n");
- }
- }
- void escribir(char nombreArchi[50], alumno unAlumno)
- {
- FILE * buffer;
- buffer = fopen(nombreArchi,"ab"); //crearcion desde 0 (este o no este) siempre al principio del archi
- if (buffer!=NULL)
- {
- fwrite(&unAlumno,sizeof(alumno),1,buffer);
- fclose(buffer);
- }
- else
- {
- printf("no se pudo abrir");
- }
- }
- void pasarArregloAlArchivo(char nombreArchi[50], alumno variosAlumnos[50],int validos)
- {
- FILE * buffer;
- buffer = fopen(nombreArchi,"ab"); //crearcion desde 0 (este o no este) siempre al principio del archi
- if (buffer!=NULL)
- {
- for (int i = 0; i<validos;i++)
- {
- fwrite(&variosAlumnos[i],sizeof(alumno),1,buffer);
- }
- fclose(buffer);
- }
- else
- {
- printf("no se pudo abrir");
- }
- }
- int pasarArchivoAArreglo(char nombreArchivo[50], alumno variosAlumnos[50], int dim)
- {
- int validos = 0;
- alumno alumno_tem;
- FILE * buffer = fopen(nombreArchi,"rb");
- if (buffer!=NULL)
- {
- while ( ((fread(&alumno_tem),1,sizeof(alumno),buffer)>0) && (validos<dim) )
- {
- variosAlumnos[validos] = alumno_tem;
- validos++;
- }
- fclose(archi);
- }
- return validos;
- }
- alumno cargarAlmuno()
- {
- alumno alumnoA;
- printf("Carge el nombre de un alumno\n");
- fflush(stdin);
- gets(&alumnoA.nombre[0]);
- system("pause");
- system("cls");
- printf("Carge el genero del alumno (m/f)\n");
- fflush(stdin);
- scanf("%c", &alumnoA.genero);
- system("pause");
- system("cls");
- printf("Carge matricula\n");
- scanf("%d", &alumnoA.matricula);
- system("pause");
- system("cls");
- printf("Carge dni\n");
- scanf("%d",&alumnoA.dni);
- system("pause");
- system("cls");
- return alumnoA;
- }
- void mostrarAlumno (alumno alumnoA)
- {
- printf ("El nombre es %s\n",alumnoA.nombre);
- printf("Su genero es %c\n",alumnoA.genero);
- printf("Su matricula es %d\n",alumnoA.matricula);
- printf("Su dni es %d\n",alumnoA.dni);
- }
- int cargarMuchosAlumnos (alumno arreglo[30], int lim)
- {
- char mander='s';
- int i=0;
- alumno temporal;
- while (i<lim && mander=='s')
- {
- // temporal=;
- arreglo[i]=cargarAlmuno();
- i++;
- printf("Desea seguir s/n\n");
- fflush(stdin);
- scanf("%c",&mander);
- }
- return i;
- }
- void mostrarArregloDeAlumnos (alumno alumnos[30], int dim)
- {
- alumno temp;
- for(int i = 0; i < dim; i++)
- {
- // temp = ;
- mostrarAlumno(alumnos[i]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement