C语言菜单程序 C语言输入验证 C语言猜数游戏 C语言菜单程序 /* menuette.c -- menu techniques */ #include <stdio.h> char get_choice(void); char get_first(void); int get_int(void); void count(void); int main(void) { int choice; void count(void); while ( (choice = get_choice()) != 'q') { switch (choice) { case 'a' : printf("Buy low, sell high.\n"); break; case 'b' : putchar('\a'); /* ANSI */ break; case 'c' : count(); break; default : printf("Program error!\n"); break; } } printf("Bye.\n"); return 0; } void count(void) { int n,i; printf("Count how far? Enter an integer:\n"); n = get_int(); for (i = 1; i <= n; i++) printf("%d\n", i); while ( getchar() != '\n') continue; } char get_choice(void) { int ch; printf("Enter the letter of your choice:\n"); printf("a. advice b. bell\n"); printf("c. count q. quit\n"); ch = get_first(); while ( (ch < 'a' || ch > 'c') && ch != 'q') { printf("Please respond with a, b, c, or q.\n"); ch = get_first(); } return ch; } char get_first(void) { int ch; ch = getchar(); while (getchar() != '\n') continue; return ch; } int get_int(void) { int input; char ch; while (scanf("%d", &input) != 1) { while ((ch = getchar()) != '\n') putchar(ch); // dispose of bad input printf(" is not an integer.\nPlease enter an "); printf("integer value, such as 25, -178, or 3: "); } return input; } C语言输入验证 C语言猜数游戏