My code is as follow:
int main(int argc, char **argv)
{
int quit=1;
int operation;
paintUI();
init();
while(quit)
{
printf("please input a operation code:");
scanf("%d",&operation);
switch(operation)
{
case 1:addBook();break;
case 2:deleteBook();break;
case 3:borrowBook();break;
case 4:backBook();break;
case 5:printAll();break;
case 6:printAllBorrowed();break;
case 7:findByNameAdapter();break;
case 8:findByNumberAdapter();break;
case 9:save();quit=0;break;
case 0:system("cls");paintUI();break;
default:printf("input error\n");break;
}
}
return 0;
}
when I input a integer to the "operation",the code works well.But when I input a char value on purpose,the code will be caught in endless loop and print "input error" all the time.When I debug,I find that after I input a char value on purpose the statement,"scanf("%d",&operation)" ,doesn't be executed any more,so the operation code is always wrong.Somebody tell me to add a statement,"fflush(stdin);",to clear the input cache and that solve the problem But why when I input a wrong integer operation code ,the code can work well even though I don't add the statement,"fflush(stdin);".