C: Problems with using getchar and switch case to get user input for a main menu -
i know there many threads similar one, however, threads didn't me out. new c, might making silly mistake, don't know i'm doing wrong.
i trying create main menu this:
main menu: 1. play 2. reset 3. display when users press 1, want print play game, when 2 pressed, want print reset, , on.
however, code, when user presses 1, prints "play game", , when users presses 2 or 3, doesn't print anything.
int main(){ int input; /*displays menu user*/ printf("main menu\n"); printf("1.play\n"); printf("2.reset\n"); printf("3.display\n"); printf("please enter something:\n"); input=getchar(); switch(input){ case'1': printf("play game\n"); break; case'2': printf("reset\n"); break; case'3': printf("display\n"); break; default: printf("invalid\n"); break; } { getchar(); while(input != '3'); } return exit_success; } so know might making silly mistake, can't figure doing wrong. have looked @ other threads , none them have helped me.
i think looking do-while loop. want nest switch inside do-while repeatedly execute it.
also, note getchar() call consume enter typed after number.
#include <stdio.h> #include <stdlib.h> int main(){ int input; /*displays menu user*/ printf("main menu\n"); printf("1.play\n"); printf("2.reset\n"); printf("3.display\n"); printf("please enter something:\n"); do{ input=getchar(); getchar(); switch(input){ case'1': printf("play game\n"); break; case'2': printf("reset\n"); break; case'3': printf("display\n"); break; default: printf("invalid\n"); break; } } while(input != '3'); return exit_success; }
Comments
Post a Comment