Hi all, for a CS project I need to make a menu, so the user must input values from 1 to 12 and q to exit the program.
My main problem is that I am using getchar() to scan the menu selection.
So inputs from 1 to 9 and q works, but 10 to 12 doesn't since getchar only supports ONE character.
My first changes were to establish the switch cases to integers between range of 10 to 12.
But still I need a suggestion of how to make the input 10, 11 and 12 to work.
Here is the code:
Changes I made are in redCode:#include <stdio.h> #include <stdlib.h> #include "prints.h" #include "exams.h" #include "guessyn.h" #include "guessmn.h" #include "diceg.h" #include "largestn.h" #include "distance.h" #include "areapara.h" #include "areatrape.h" #include "perimepoly.h" #include "arrayv.h" #include "arrayc.h" int main () { int selection; do{ printf("Choose a skill to practice:\n"); printf("1) Print shapes\n"); printf("2) Exam score\n"); printf("3) I guess your number\n"); printf("4) Guess my number\n"); printf("5) Dice game\n"); printf("6) Largest number\n"); printf("7) Distance\n"); printf("8) Area of parallelogram\n"); printf("9) Area of trapezoid\n"); printf("10) Perimeter of polygon\n"); printf("11) Array vowel\n"); printf("12) Array consonant\n"); printf("q) Quit\n"); printf("\n"); printf("Enter selection: "); selection = getchar(); while ( getchar() != '\n'); while ( selection != '1' && selection != '2' && selection != '3' && selection != '4' && selection != '5' && selection != '6' && selection != '7' && selection != '8' && selection != '9' && selection != 10 && selection != 11 && selection != 12 && selection != 'q' ) { printf("\n"); printf("Wrong input!!! Please try again...\n"); printf("\n"); printf("Enter selection: "); selection = getchar(); while ( getchar() != '\n'); } printf("\n"); switch( selection ){ case '1': prints(); break; case '2': exams(); break; case '3': guessyn(); break; case '4': guessmn(); break; case '5': diceg(); break; case '6': largestn(); break; case '7': distance(); break; case '8': areapara(); break; case '9': areatrape(); break; case 10: perimepoly(); break; case 11: arrayv(); break; case 12: arrayc(); break; case 'q': printf("Thanks for playing!"); return EXIT_SUCCESS; } printf("\n"); }while( selection == selection ); }