fgets из проблем с stdin [C]

Я пишу программу, которая работает с файлами. Мне нужно иметь возможность вводить данные в виде структур и в конечном итоге читать их. Проблема, с которой я столкнулся на данный момент, заключается в следующем коде:

typedef struct {
    char* name;
    .....
}employeeRecord;
employeeRecord record;

char name[50];

if(choice == 1)
    {
        /*Name*/
        printf("\nEnter the name:");
        fgets(name,50,stdin);
        record.nameLength = strlen(name) -1;
        record.name = malloc(sizeof(char)*record.nameLength);
        strcpy(record.name,name);
        /*Other data, similar format...*/

Если я хочу, например, указать адрес и номер телефона и попросить указать каждую строку (так что адрес в значительной степени идентичен указанному выше, за исключением замены имени на адрес), я обнаружил, что ввод пропускается. Я имею в виду, что у меня нет шансов ввести это. Выходные данные на самом деле Введите имя: Введите адрес: (и вот где он запрашивает у меня ввод)

Ответы на вопрос(3)

Ваш ответ на вопрос