Question: Im new to C and cant for the life of me work out what im doing wrong here. The first scanf works fine, variables are printed out as they are read in. The second scanf doesn't seem to be reading the input correctly. Input is of the format "char int int" i.e. b 4 4  

when i print opb x and y out, opb = " ", x = 13238272 , y=0. 
Any Ideas?.....note ive cut out code below the problem

```
int main(void)
{

/*initialize variables*/
int width, height;
char op;

/*grid input*/
scanf("%c %d %d", &op, &width, &height);

/*check conditions*/
if (op != 'g' || width>100 || height>100 || width*height<10 || width<1 || height<1) {
    printf("grid-error\n");
    return 0;
}

/*initialize grid elements*/
int grid[width][height];
char printGrid[width][height];

/*create grid elements*/
int i, j;
for (i=0; i<height; i++) {
    for (j=0; j<width; j++) {
        grid[j][i] = 0;
        printGrid[j][i] = '*';
    }
}

/*print successful creation*/
printf("%c %d %d \n", op, width, height);

int k;
for (k = 0; k<10; k++) {
    /*initialize variables*/
    int x, y;
    char opb;

    /*mine input*/
    scanf("%c %d %d", &opb, &x, &y);

    /*check conditions*/
    if (opb != 'b' || x<0 || y<0 || x>(width-1) || y>(height-1) || grid[x][y] == 9) {
        printf("mine-error\n");
        return 0;
    }

```

Answer: 
I suspect the problem is that you aren't dealing with newline characters in your input. The result is that the `opb` is actually a newline character (not a space, though it looks like one) and `x` and `y` aren't read at all (i.e. they retain the values they were initialised with).

To solve the problem, try adding the newline to both your scanfs. That is:

```
scanf("%c %d %d\n", &op, &width, &height);

```

and later

```
scanf("%c %d %d\n", &opb, &x, &y);

```
I think the easiest would be to put space before %c in second scanf. If you use it without space, it will take first symbol. That means, newline. The space makes %c take first symbol that isn't space or tab. So:

```
scanf(" %c %d %d", &op, &x, &y);

```