fgets von stdin problemen [C]

Ich schreibe ein Programm, das mit Dateien arbeitet. Ich muss in der Lage sein, Daten als Strukturen einzugeben und sie schließlich auszulesen. Das Problem, das ich im Moment habe, ist mit diesem Code:

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...*/

Wenn ich zum Beispiel Name, Adresse und Telefonnummer will und nach jeder in einer Reihe frage (so ist die Adresse ziemlich identisch mit der obigen, außer, dass 'Name' durch Adresse ersetzt wird), überspringe ich die Eingabe. Was ich meine ist, ich habe keine Chance, es einzugeben. Die Ausgabe ist tatsächlich Geben Sie den Namen ein: Geben Sie die Adresse ein: (und hier werden Sie zur Eingabe aufgefordert)

Antworten auf die Frage(3)

Ihre Antwort auf die Frage