I was going over number input in the FAQ here. I am about half done reading it and wanted to try out some of the early examples both good and bad to understand what is exactly going on. Here is a function I made. I added a min and max to limit the size of the number.
The call looks like this:
Code:printf("Enter a number (0-20)\n"); number = UserInput(MIN_NUMBER, MAX_NUMBER);
Code:int UserInput(int min, int max){ int input; input = 0; printf(CURSOR); while (scanf("%d",&input) != 1 || input < min || input > max){ while (getchar() != '\n'); printf(CURSOR); } // while (getchar() != '\n'); <<<--- Should I put this here?? return input; }
My question is two fold. First, shouldn't I clear the stdin before leaving this function. From what I can tell it still leaves junk in the buffer.
Two what would happen if the user exceeds the buffer? I tried it and seems the function works fine no matter how large a number is entered.



LinkBack URL
About LinkBacks



