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

王朝system·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航