New programmer here with only some minor Java experience trying my hand at writing something in C. I want to ask someone a Yes/No question, do something depending on their answer, then ask them to press Enter to continue. I’m having two problems:
1.) I can’t get the program to accept ‘y’, ‘Y’, or “Yes” as answers. I can get it to accept one, but not all three. The “logical OR” operator || isn’t working.
2.) I can’t get it to stop at “Press Enter to Continue” without two “Flush” commands of:
while (getchar() != '\n');
The code I have and am trying to use is as follows:
int main (int argc, const char * argv[]) {
printf("Would you like to continue? Please press y or n.\n");
if(getchar() == 'y'){
printf("You pressed yes! Continuing...");
}
else{
printf("Pressed no instead of yes.");
}
//flush commands go here
printf("\nPress ENTER to continue...");
if(getchar()=='\n'){
printf("\nGood work!");
}else{
printf("Didn't hit ENTER...");
return 0;
}
Any help would be appreciated, thanks.
Assuming that you are working in *nix environment,
You can create a buffer to store the incoming characters one after the other.
You have two cases:
For all other cases you can blindly say that the input is not OK!
For case 1, i should be
1and thecharactershould be ‘y’ or ‘Y’For case 2, i should be
3and thestringshould be ‘Yes’Any other case is incorrect. Here is the code:
I would recommend using something like this.