打印本文 打印本文 关闭窗口 关闭窗口
linux下的c 编程------控制台下的menu
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1094  更新时间:2009/4/22 20:45:35  文章录入:mintao  责任编辑:mintao


#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);

}

打印本文 打印本文 关闭窗口 关闭窗口