linux下的c 编程------控制台下的menu



#include <stdlib.h>
#include <stdio.h>

char *menu[]={"a - add new record",
"d - delete a record",
"q - quit",NULL,};
int getchoice(char *greet,char *choices[],FILE *in ,FILE *out)
{
int chosen=0;
int selected,selected1;
char **option;

do {
fprintf(out,"Choice: %s/n",greet);
option=choices;
while(*option)
{
fprintf(out,"%s/n",*option++);
}
do{
selected=fgetc(in);
selected1=fgetc(in);
}while(selected1!='/n');
option=choices;
while(*option)
{
if(selected==*option[0])
{
chosen=1;break;
}
option++;
}
if(!chosen)
{
fprintf(out,"Incorrect choice,select again!/n");
}
}while(!chosen);

return selected;

}

int main()
{
int choice=0;
FILE * input;FILE * output;
if(!isatty(fileno(stdout)))
{
fprintf(stderr,"You are not a terminal,OK,/n");
}
input=fopen("/dev/tty","r");
output=fopen("/dev/tty","w");
if(!input||!output)
{
fprintf(stderr,"Unable to open /dev/tty/n");
exit(1);
}
do{
choice=getchoice("Please select a action",menu,input,output);
fprintf(output,"You have chosen: %c/n",choice);
}while(choice!='q');
exit(0);

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值