Quick issue with my code. Please look in the function enter(). When I request the name, and use gets(), it just skips it as if nothing was there, and jumps to requesting the age. What am I doing incorrectly?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define RECORDS 30
#define LEN 20
/*Questions
Formatting display() - can we use spaces to format?
Is the patient structure supposed to be global or local in enter()?
Why doesn't printf("name: "); scanf("%s", name); require &name?
Make sure you account for first and last names, use getline or something
*/
void enter();
struct patient
{
    char name[LEN];
    int age;
    double highBP, lowBP, riskFactor;
};
struct patient * db[RECORDS];
int counter = 0;
main()
{
    int flag = 1;
    while (flag == 1)
    {       
        printf("---------------------------------------------------------\n");
        printf("|\t(N)ew record\t(D)isplay db\t(U)pdate record |\n");
        printf("|\t(L)oad disk\t(W)rite disk\t(E)mpty disk    |\n");
        printf("|\t(S)ort db\t(C)lear db\t(Q)uit          |\n");
        printf("---------------------------------------------------------\n");
        printf("choose one: ");
        char selection, selectionstr[3];
        scanf("%s",selectionstr);
        selection = selectionstr[0];        
        //printf("selection %c\n", selection);
        if ((selection == 'n') || (selection == 'N'))
        {
            //New record
            enter();
        }
            // Options omitted...
        else
        {
            printf("not a vaild input\n");  
        }
    }
}
void enter()
{
    if (counter < 30)
    {
        FILE *fptr;
        fptr = fopen("db.txt", "a");
        char name[LEN];
        int age;
        double highBP, lowBP;
        printf("name: "); //scanf("%s", name);
        gets(name);
        printf("age: "); scanf("%d", &age);
        printf("high bp: "); scanf("%lf", &highBP);
        printf("low bp: "); scanf("%lf", &lowBP);
        struct patient temp;
        strcpy(temp.name, name);
        temp.age = age;
        temp.highBP = highBP;
        temp.lowBP = lowBP;
        if ((highBP < 120) && (lowBP < 80))
            temp.riskFactor = 0;
        if (((highBP <= 120) && ((lowBP > 80) && (lowBP <= 90))) || ((highBP <= 80) && ((lowBP > 120) && (lowBP <= 130))))
            temp.riskFactor = 1;
        if (((highBP <= 120) && ((lowBP > 90) && (lowBP <= 100))) || ((highBP <= 80) && ((lowBP > 130) && (lowBP <= 140))))
            temp.riskFactor = 4;
        else
            temp.riskFactor = 5;
        if ((temp.riskFactor > 0) && (temp.age > 50))
            temp.riskFactor += 0.5;
        db[counter] = &temp;
        //fprintf(fptr, "%s, %d, %f, %f, %f\n", db[counter]->name, db[counter]->age, db[counter]->highBP, db[counter]->lowBP, db[counter]->riskFactor);
        printf("%s, %d, %f, %f, %f\n", db[counter]->name, db[counter]->age, db[counter]->highBP, db[counter]->lowBP, db[counter]->riskFactor);
        counter++;
        fclose(fptr);
    }
    else
        printf("database full");
    /*db[counter] = (struct patient *) malloc(sizeof(struct patient));
    printf("name: "); scanf("%s", (*db[counter]).name);
    printf("age: "); scanf("%d", (*db[counter]).age);
    printf("high bp: "); scanf("%d", (*db[counter]).highBP);
    printf("low bp: "); scanf("%d", (*db[counter]).lowBP);
    //db[counter] = &temp;
    printf("%d", sizeof(db[counter]));
    //printf("%s", (db[counter])->name);
    printf("%s, %d, %f, %f\n", db[counter]->name, db[counter]->age, db[counter]->highBP, db[counter]->lowBP);
    counter++;*/
}
 
     
     
     
    