/** * Reads a new teacher * @param teacher t [teacher's vector] * @param date today [today's date] */ void readTeacher(teacher *t, date today) { char buffer[MAX_BUFFER_SIZE]; printf("Teacher's name?\n"); fgets(buffer, MAX_BUFFER_SIZE, stdin); t->name = (char *) malloc((strlen(buffer)+1)*sizeof(char)); //Name dynamic memory alloc if(t->name == NULL) { printf("Not enough memory\n"); exit(1); } strcpy(t->name, buffer); t->name[strlen(t->name)-1] = '\0'; //Terminate the string with nullbyte printf("Teacher's birthdate?\n"); fgets(buffer, MAX_BUFFER_SIZE, stdin); sscanf(buffer, "%d/%d/%d", &t->birthdate.day, &t->birthdate.month, &t->birthdate.year); t->age = calcAge(t->birthdate, today); }
int main(void) { printf("today's date (dd mm yyyy)>>>\n"); printf("today's day: "); scanf("%d", &today.day); printf("today's month: "); scanf("%d", &today.month); printf("today's year: "); scanf("%d", &today.year); if (today.day <= 0 || today.month <= 0 || today.year <= 0) { throwException(); return -1; } if (sanitizeDate(&today) == false) { throwException(); return -1; } printf("birth date (dd mm yyyy)>>>\n"); printf("bithday's day: "); scanf("%d", &birthday.day); printf("bithday's month: "); scanf("%d", &birthday.month); printf("bithday's year: "); scanf("%d", &birthday.year); if (birthday.day <= 0 || birthday.month <= 0 || birthday.year <= 0) { throwException(); return -1; } if (sanitizeDate(&birthday) == false) { throwException(); return -1; } calcAge(&today, &birthday); return 0; }