Question: ```
printf("Enter an integer: ");
status = scanf("%d", &integer);

if (status == 0){
    do{
        printf("Please enter an integer: ");
        status = scanf("%d", &integer);
    }
    while (status == 0);
}

```

I'm trying to prevent a user from entering a data of type of character. However, after the prompt, "Please enter an integer: ", it doesn't wait for an input. Hence, it goes into an infinite loop whenever I enter a letter at the first prompt. How do I fix this? Any heeelp will be greatly appreciated!

Answer: 
You need clean the buffer first, you can use `fflush(stdin);` like this:

```
int integer, status=0;
if (status == 0)
{
    do
    {
        printf("\nPlease enter an integer: ");
        status = scanf("%d", &integer);
        fflush(stdin);
    }
    while (status == 0);
}

```

**It's not in standard C** using `fflush(stdin)` but you can clean the buffer in other ways.

You can build your own function to clean the buffer, like this:

```
void flushKeyBoard()
{
    int ch; //variable to read data into
    while((ch = getc(stdin)) != EOF && ch != '\n');
}

```

To clean the screen call this function:

```
void clrscr()
{
    system("@cls||clear");
}

```

**Final code:**

```
#include <stdio.h>

void clrscr()
{
    system("@cls||clear");
}
void flushKeyBoard()
{
    int ch; //variable to read data into
    while((ch = getc(stdin)) != EOF && ch != '\n');
}
int main()
{
    int integer, status=0;
    if (status == 0)
    {
        do
        {
            printf("\nPlease enter an integer: ");
            status = scanf("%d", &integer);
            flushKeyBoard();
            clrscr();
        }
        while (status==0);
    }
}

```
your %integer, should be declared int.
Like that:

```
int integer;

 printf("Please input an integer value: ");

 scanf("%d", &integer);

```