Introducir y leer datos de la estructura

Veamos ahora como introducir los datos de todos los alumnos de forma sencilla y luego mostrar estos datos por pantalla. Para que el ejemplo no se haga tan extenso, hagamos un poco más pequeña la estructura, solo pondremos el nombre y la edad de cada alumno:

38-1

 

Una vez modificada la estructura vamos a la función main, donde crearemos un array de 3 alumnos e introduciremos todos sus datos. 

Como imaginaréis, lo ideal tanto para introducir datos como para leerlos es hacerlo a través de bucles, para no tener que repetir instrucciones. 

38-2

Lo primero, crear un array de 3 alumnos:

struct estructura_alumnos alumnos[3];  
Con esta instrucción tenemos dicho array. Ahora vamos a introducir los datos de todos los alumnos con un bucle for:
//Bucle para introducir todos sus datos
  for (int i = 0; i < 3; i++)
  {
           printf("Introduce nombre del alumno %i: ", i+1); 
           gets(alumnos[i].nombre); //gets lee incluso espacios en String
           printf("Introduce edad del alumno %i: ", i+1);
           scanf("%i", &alumnos[i].edad); //Recoge la edad
           while(getchar()!='\n'); //Bucle que vacía buffer de entrada
  }

 

El bucle tiene que ir desde 0 a 3. Y dentro del bucle pedimos al usuario que introduzca nombre y edad de los alumnos. 

 gets(alumnos[i].nombre); 

Utilizamos la función gets para introducir los nombres. Para acceder al alumno "i" se hace con los corchetes, como en cualquier array. Y luego ".", y detrás del punto escribimos el nombre de la variable de la estructura en la que queremos introducir el dato. En este caso sería ".nombre" y ".edad". 

Esta línea nos sirve para vaciar el buffer de entrada del programa:

while(getchar()!='\n');

Sin esta línea no funcionaría bien la inclusión de datos. Es necesario ponerla; para comprenderla hace falta saber más sobre C, pero ahora mismo no nos incumbe.

Ya tenemos la estructura con los datos introducidos por el usuario. Ahora solo nos queda leer los datos de todos los alumnos, de nuevo con un bucle for para recorrer todo el array.

//LEER LOS DATOS DE LOS ALUMNOS
       for (int i = 0; i < 3; i++)
  {
           printf("\nALUMNO %i \n", i+1); //Muestra numero de alumno
           printf("Nombre: %s\n", alumnos[i].nombre); //Nombre de dicho alumno
           printf("Edad: %i \n\n", alumnos[i].edad); //Edad de dicho alumno
           
   }
A través de los printf se muestran los datos como venimos haciendo durante todo el curso. Lo único que tenemos que saber es que para acceder a los datos hay que poner el "." detrás del array, seguido del nombre del dato que queramos leer.
Para que quede más bonito hemos puesto el número de alumno que está mostrando. Mostramos el alumno "i+1" para que no se muestre alumno 0, ya sabéis. 
 
El código del programa lo tenéis aquí:
 
 
Y el vídeo de muestra:
Leer estructura

Daniel Pozo Chichon

Técnico en Desarrollo de Aplicaciones Informáticas (Grado superior)

Contenidos que te pueden interesar
Este sitio usa cookies para personalizar el contenido y los anuncios, ofrecer funciones de redes sociales y analizar el tráfico. Ninguna cookie será instalada a menos que se desplace exprésamente más de 400px. Leer nuestra Política de Privacidad y Política de Cookies. Las acepto | No quiero aprender cursos gratis. Sácame