Problems with scanf

cscanf

#include <stdio.h>

int main()
{

    char C, B;
    int x;



    printf("What comes after G\n");
    scanf("%c", &C);

    printf("What comes after O\n");
    scanf("%c", &B);

    printf("What is your age?\n");
    scanf("%d", &x);

    printf("You said %c comes after G, %c after T and you're %d years old? Right?", C, B, x);

    return 0;
}

The problem is whenever you run the code it skips the second question "What comes after O" and then asks "What is your age?"

The only way I could avoid the program skip the 2nd question was by adding a space to the code

printf("What comes after O\n");
    scanf(" %c", &B);

You can see the space between " and %c

Can you please explain this to me?

Best Answer

You need to eat up the white space (i.e. new line) - as per the manual page http://linux.die.net/man/3/scanf

Related Topic