怎样结合getchar实现菜单选择

avatar
作者
筋斗云
阅读量:0

要使用getchar()函数实现菜单选择,你可以按照以下步骤进行操作:

  1. 首先,定义一个包含菜单选项的字符串数组。
  2. 然后,编写一个循环,用于显示菜单并接收用户输入。
  3. 在循环内部,使用getchar()函数读取用户输入的字符。
  4. 根据用户输入的字符,判断用户选择的菜单项,并执行相应的操作。
  5. 如果用户选择退出菜单,跳出循环并结束程序。

下面是一个简单的示例代码:

#include <stdio.h> #include <string.h>  int main() {     char menu[] = {"1. 选项1", "2. 选项2", "3. 选项3", "4. 退出"};     int choice;      while (1) {         printf("%s\n", menu);         printf("请输入选项(1-4):");         scanf("%d", &choice);          switch (choice) {             case 1:                 printf("你选择了选项1\n");                 break;             case 2:                 printf("你选择了选项2\n");                 break;             case 3:                 printf("你选择了选项3\n");                 break;             case 4:                 printf("退出程序\n");                 return 0;             default:                 printf("无效输入,请输入1-4之间的数字\n");         }     }      return 0; } 

在这个示例中,我们使用scanf()函数读取用户输入的数字,然后使用switch语句根据用户输入的数字执行相应的操作。注意,这里我们使用scanf()而不是getchar()来读取用户输入的数字,因为getchar()只能读取单个字符,而scanf()可以读取整行输入并将其转换为整数。如果你确实需要使用getchar()来实现这个功能,你可以使用以下代码:

#include <stdio.h> #include <string.h>  int main() {     char menu[] = {"1. 选项1", "2. 选项2", "3. 选项3", "4. 退出"};     char input;      while (1) {         printf("%s\n", menu);         printf("请输入选项(1-4):");          // 使用getchar()读取用户输入的字符,直到用户输入换行符或空格         while ((input = getchar()) != '\n' && input != ' ') {             // 可以在这里处理用户的输入,例如检查输入是否有效         }          // 根据用户输入的字符(换行符)判断用户选择的菜单项         if (input == '\n') {             switch (menu[0] - '0') {                 case 1:                     printf("你选择了选项1\n");                     break;                 case 2:                     printf("你选择了选项2\n");                     break;                 case 3:                     printf("你选择了选项3\n");                     break;                 case 4:                     printf("退出程序\n");                     return 0;                 default:                     printf("无效输入,请输入1-4之间的数字\n");             }         }     }      return 0; } 

在这个示例中,我们使用getchar()函数逐个读取用户输入的字符,直到用户输入换行符或空格。然后,我们根据用户输入的第一个字符(换行符)判断用户选择的菜单项。注意,这里我们使用menu[0] - '0'将菜单项的字符转换为整数,以便在switch语句中使用。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!