www.pudn.com > 日期、菜单、字符串的C函数.rar > CHOSIT.C


/*                              *** chosit.c ***                     */ 
/*                                                                   */ 
/* IBM - PC microsoft "C"                                            */ 
/*                                                                   */ 
/* Function to display a menu, prompt for a response, and validate.  */ 
/* Calls function mencon to display the menu.  Returns the integer   */ 
/* response, or -1 if invalid response or error occured.              */ 
/*                                                                   */ 
/* Written by L. Cuthbertson, April 1984.                            */ 
/*                                                                   */ 
/*********************************************************************/ 
/*                                                                   */ 
 
int chosit(menu,ans,lenans) 
char menu[],ans[]; 
int lenans; 
{ 
	extern int rc[][2]; 
	extern int vrange[2]; 
	int i,j,ians,nfield; 
 
	/* display menu */ 
	if (strcmp(menu,"skip") != 0) { 
		nfield = mencon(menu); 
		if (nfield == (-1)) 
			return(-1);	/* error in mencon */ 
	} 
 
	/* move cursor to entry position */ 
	i=0;			/* position within rc array */ 
	if (i > (nfield-1)) { 
		return(-1);	/* no entry position on menu */ 
	} 
 
	loop: 
	cursor(rc[i][0],rc[i][1]); 
 
	/* accept answer */ 
	reads(ans,lenans); 
 
	/* convert answer to integer */ 
	sscanf(ans,"%d",&ians); 
 
	/* always exit if 99 entered */ 
	if (ians == 99) 
		exit(); 
 
	/* validate answer */ 
	if ((ians < vrange[0]) || (ians > vrange[1])) { 
		cursor(25,19); 
		writes("\007*** invalid response - please try again ***"); 
		pause(5.); 
		cursor(25,19); 
		eline(0); 
		cursor(rc[i][0],rc[i][1]); 
		for (j=1;j