Hello everyone,
I need help understanding what is wrong with my code below:
The function works perfectly fine, it's just the output I receive baffles me completely.
For some strange reason, my value I input passes twice when it goes to the default case.
The output looks like this:
A = advanced B = basic: f
That is an invalid input.
A = advanced B = basic: That is an invalid input.
A = advanced B = basic:
As you see above, it seems that the value I pass it 'f' gets passed twice in the while loop and prompts me that I had passed it an invalid input twice. Even though I only typed it in and passed it once.
I've been stuck on this for a while and I have no idea how to fix this.
I am not sure if this helps, but I did find people on other forums (couldn't find anything regarding this on DIC) talking about "flushing out" old inputs to solve this, but I could not find any code showing how this is done.
Thanks a bunch![:)]()
Sahle
I need help understanding what is wrong with my code below:
The function works perfectly fine, it's just the output I receive baffles me completely.
For some strange reason, my value I input passes twice when it goes to the default case.
bool pick_basic_or_advanced()
{
bool is_good = true;
bool done_picking = false;
char ctrl_pick;
while(!done_picking)
{
printf("A = advanced, B = basic: ");
scanf("%c", &ctrl_pick);
switch(ctrl_pick)
{
case 'a':
case 'A':
advanced_pick(is_good);
done_picking = true;
break;
case 'b':
case 'B':
basic_pick(is_good);
done_picking = true;
break;
default:
printf("This is an invalid input.\n");
break;
}
}
return is_good;
}
The output looks like this:
A = advanced B = basic: f
That is an invalid input.
A = advanced B = basic: That is an invalid input.
A = advanced B = basic:
As you see above, it seems that the value I pass it 'f' gets passed twice in the while loop and prompts me that I had passed it an invalid input twice. Even though I only typed it in and passed it once.
I've been stuck on this for a while and I have no idea how to fix this.
I am not sure if this helps, but I did find people on other forums (couldn't find anything regarding this on DIC) talking about "flushing out" old inputs to solve this, but I could not find any code showing how this is done.
Thanks a bunch
Sahle