C Primer Plus(6th)

Menu菜单程序

2020-11-11  本文已影响0人  akuan
#include <stdio.h>
char get_choice(void);
char get_first(void);
int get_int(void);
void count(void);
int main(void) {
  int choice;
  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;
}
a. advice b. bell
c. count   q. quit
|a
Buy low, sell high.
Enter the letter of your choice:
a. advice b. bell
c. count   q. quit
|count
Count how far? Enter an integer:
|two
two is not an integer.
Please enter an integer value, such as 25, -178, or 3: |5
1
2
3
4
5
Enter the letter of your choice:
a. advice b. bell
c. count   q. quit
|d
Please respond with a, b, c, or q.
|q
Bye.
上一篇 下一篇

猜你喜欢

热点阅读