#include<stdio.h>
#include<conio.h>
#include<ctype.h>
#include<string.h>
//创立菜单
char Menu(const char *text, const char* option);
int main()
{
char choice;
do
{
choice = Menu("File, Edit, Help, Quit >", "FEHQ");
switch(choice)
{
case 'F' : printf("File\n"); break;
case 'E' : printf("Edit\n"); break;
case 'H' : printf("Help\n"); break;
case 'Q' : printf("ByeBye ^ ^\n"); break;
}
} while(choice != 'Q');
return 0;
}
char Menu(const char *text, const char* option)//字符串的首地址被接收
{
char choice;
printf(text);
while(!strchr(option, choice = toupper(getch())))
{
putchar('\a');
}
putchar(choice);
putchar('\n');
return choice;
}
感觉自己以前做的大菜单都是辣鸡- -
#include <conio.h>
conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。
getch() : 一个不回显函数,当用户按下某个字符时,函数自动读取,无需按回车.
getche() : 输入后立即从控制台取字符,不以回车为结束(带回显)
#include <string.h>
功能
在参数str所指向的字符串中搜索第一次出现字符c(一个无符号字符)的位置。
返回值
该函数返回在字符串 str 中第一次出现字符 c 的位置,如果未找到该字符则返回 NULL。 [2]
while(!strchr(option, choice = toupper(getch())))
{
putchar('\a');//真的发出声音的那种!!
}
将键盘按下的字符转为大写,赋值于choice, 判断choice是否为option字符串中的字符(看能不能搜索到),能则返回字符的位置,否则返回0;
若输入字符不符合标准 , 进入while循环,发出提示音对用户进行提示;