Código:
#include<stdio.h>
typedef struct fecha{int dia;int mes;int año; }d_t;
typedef struct contacto{char nombre[80];unsigned int tel; d_t fecha_nacimiento; }c_t;
d_t crear_fecha(){ d_t nueva_fecha;
printf("\nIngrese el dia: "); scanf("%d",&nueva_fecha.dia); while(getchar()!='\n');
printf("\nIngrese mes: "); scanf("%d",&nueva_fecha.mes); while(getchar()!='\n');
printf("\nIngrese año:" ); scanf("%d",&nueva_fecha.año); while(getchar()!='\n');
return nueva_fecha; }
c_t crear_contacto(){ c_t nuevo_contacto;
printf("\nIngrese nombre: ");
fgets(nuevo_contacto.nombre,80,stdin);
//scanf("%[^\n]s",nuevo_contacto.nombre);
printf("\nIngrese telefono: "); scanf("%d",&nuevo_contacto.tel);
//asignar fecha de nacimiento
nuevo_contacto.fecha_nacimiento=crear_fecha();
return nuevo_contacto; }
c_t imprimir(){
}
int main (void){ c_t c1;
c1=crear_contacto();
imprimir(c1);
printf("Nombre: %s, Telefono %d, Fecha Nacimiento: %d/%d/%d",
c1.nombre,c1.tel,c1.fecha_nacimiento.dia,c1.fecha_nacimiento.mes,c1.fecha_nacimiento.año);
return 0; }
Aca el resultado de la salidatypedef struct fecha{int dia;int mes;int año; }d_t;
typedef struct contacto{char nombre[80];unsigned int tel; d_t fecha_nacimiento; }c_t;
d_t crear_fecha(){ d_t nueva_fecha;
printf("\nIngrese el dia: "); scanf("%d",&nueva_fecha.dia); while(getchar()!='\n');
printf("\nIngrese mes: "); scanf("%d",&nueva_fecha.mes); while(getchar()!='\n');
printf("\nIngrese año:" ); scanf("%d",&nueva_fecha.año); while(getchar()!='\n');
return nueva_fecha; }
c_t crear_contacto(){ c_t nuevo_contacto;
printf("\nIngrese nombre: ");
fgets(nuevo_contacto.nombre,80,stdin);
//scanf("%[^\n]s",nuevo_contacto.nombre);
printf("\nIngrese telefono: "); scanf("%d",&nuevo_contacto.tel);
//asignar fecha de nacimiento
nuevo_contacto.fecha_nacimiento=crear_fecha();
return nuevo_contacto; }
c_t imprimir(){
}
int main (void){ c_t c1;
c1=crear_contacto();
imprimir(c1);
printf("Nombre: %s, Telefono %d, Fecha Nacimiento: %d/%d/%d",
c1.nombre,c1.tel,c1.fecha_nacimiento.dia,c1.fecha_nacimiento.mes,c1.fecha_nacimiento.año);
return 0; }
Ojo que con scanf no ocurre eso pero quisiera hacerlo con fgets :/
Gracias de antemano!! Saludos.