Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/06/2013, 10:38
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Imprimir typedef C

Puedes usar una lista de estructuras para guardar todos los datos entrados, y luego tienes las dos opciones que te comente para ingresar los textos.

La struct ya la tienes, solo has de declarar un array de structs

Código:
typedef struct {
    char nom[20];
} datos;

datos lista[10];
Esto te permite guardar de forma facil 10 textos de 20 caracteres cada una; pero ojo: solo 10, eso implica que no puedes usar un bucle infinito. Si quieres usar un bucle infinito debereas usar listas dinamicas que te permitan ampliar el numero de structs hasta que finalice la aplicacion o hasta que te quedes sin memoria; si acaso esto dejalo para mas adelante, de momento trabaja con 10 structs para ver como funciona.

Sabiendo que solo podras guardar 10 textos, cambias el bucle infinito por un for y vas cargando los datos. Ahora es donde tienes las dos opciones que te comente: si quieres guardar datos de forma ordenada (mas o menos ordenada) puedes usar el scanf con varios modificadores para 'cazar' los datos en una sola frase. Si solo quieres guardar datos sin importar lo que haya puedes usar el fgets para cargar todo lo que se ha escrito hasta el salto de linea (o hasta el tamaño indicado). Algo asi

Código:
typedef struct {
    char nom[20];
    int edat;
} datos;

datos lista[10];
int q;

for(q = 0; q < 10; q++) {
    printf("Dato #%d en formato <nombre> <edad>: ", q);
    scanf("%s %d", lista[q].nom, &lista[q].edat);
}
Cuando finaliza el ciclo ya tienes la lista con los 10 usuarios y la edad de cada usuario. Para imprimirlos haces el mismo ciclo pero printando los valores:

Código:
for(q = 0; q < 10; q++) {
    printf("%s %d\n", lista[q].nom, &lista[q].edat);
}
Saludos
vosk