Hola!
Quisiera saber si hay alguna forma o tienen algún ejemplo de como mostrar un array de estructura en forma de registros...
Tengo un array del tipo "estruct informacionpersonal", esta estructura tiene nombre, dni, edad, telefono, direccion, etc...
A la hora de mostrarlo comúnmente me saldría así
matricula: ...
Nombre: ...
dni: ...
edad: ...
telefono: ...
etc...
Trate de mostrarlo de la siguiente forma
matricula nombre dni edad telefono etc
... ... ... ... ... ...
... ... ... ... ... ...
... ... ... ... ... ...
Me sale mostrarlo asi pero se me compica cuando algunos "campos" toma una longitud mas grande o mas chica como por ejemplo el nombre que puede variar...
Qué podria hacer para establecer tamaños fijos en cada "columna"?
Es mas, necesito mostrarlos asi porque debo ordenarlos por un numero de matricula que es el primer cambio y quiero que se vea el cambio del array al cargarlo desordenadamente y luego al quedar ordenado.
Saludos!
Hola! lo que podes hacer es usar los modificadore de formato, ejemplo:
printf("%10s %10s %10s\n","Nombre","matricula","dni");
printf("%10s %10s %10d\n","Torino10","AJFUDS",12345678);
El numero 10 entre "%" y "s" indica que va a ocupar un minimo de 10 espacios comenzando desde la derecha. Si queres justificarlo hacia la izquierda solo le agragras el menos: %-10s
Saludos
Ahora pruebo, gracias por responder y de paso aprovecho para hacerte una consulta...
Estoy creando una función para buscar un "registro" dentro de un array del tipo struct. El mismo que puse arriba de ejemplo.
Tengo que buscar por nombre y la hice asi
int busquedapornombre (struct infopersonal *puntero, int dim, char val)
{
int encontrado=-1;
for (int i=0; i<dim; i++)
{
if (strcmp(puntero[i].nombre, val)==0)
{
encontrado=i;
}
}
return encontrado;
}
Me sale el siguiente error: "no match for 'operator[]' in 'puntero' "
Qué podra ser que estoy haciendo mal?
A la función la llamo del main de la siguiente forma
ordenarpornombre (vec, dim, val);
Y la tengo definida asi
int busquedapornombre (struct infopersonal *puntero, int dim, char val);
No se porque te marca como si el error fuese el puntero, lo que veo mal es el uso de strcmp, esta funcion recive dos puntero a char(char *) y vos le estas pasando "val" que es un char. Corregi eso
Saludos
Muchisimas gracias por la ayuda!
Era ese el error y ya esta solucionado!
Un abrazo!