CCL Home Page
Up Directory CCL gdouble
#include "utility.h"

int gdouble(prompt,null_ok,range_check,minimum,maximum,number)
/*============================================================================*/
/* PURPOSE: GET A DOUBLE SUBJECT TO RANGE CONSTRAINTS FROM THE USER.
/* INPUTS:
/*	PROMPT		PROMPT STRING TO BE DISPLAYED FOR USER.
/*	NULL_OK		TRUE/FALSE IF NULL ENTRY IS VALID.
/*	RANGE_CHECK	TRUE/FALSE IF RANGE CHECKING IS DESIRED.
/*	MINIMUM		MINIMUM ALLOWED INPUT IF RANGE_CHECK IS TRUE.
/*	MAXIMUM		MAXIMUM ALLOWED INPUT IF RANGE_CHECK IS TRUE.
/* OUTPUTS:
/*	NUMBER		VALID DOUBLE BETWEEN MINIMUM AND MAXIMUM IF
/*			RANGE_CHECK IS TRUE.
/*	FUNCTION VALUE	STATUS OF USER RESPONSE (AS IN UTILITY.H).
/* WRITTEN: M.V.GRIESHABER
/* LAST MODIFICATION: 11 JUNE 1991 MVG
*/
   char prompt[];
   int null_ok;
   int range_check;
   double minimum;
   double maximum;
   double *number;
   {
   char response[100];	/* USER INPUT. */
   double candidate;	/* POSSIBLY VALID DOUBLE TO BE CHECKED. */
   int status;		/* USER INPUT STATUS. */

   while(TRUE)
      {
      status=gstring(prompt,null_ok,response);
      if (status==ABORT_ENTRY || status==NULL_ENTRY) return(status);

      if (! valchars(response,"-0123456789.eE"))
         fprintf(stderr,"Error: Invalid response.\n\n");
      else
         {
         candidate=atof(response);
         if (range_check && (candidatemaximum))
            fprintf(stderr,"Error: Response out of range.\n\n");
         else
            {
            *number=candidate;
            return(VALID_ENTRY);
            }
         }
      }
   }
Modified: Fri Feb 11 17:00:00 1994 GMT
Page accessed 4736 times since Sat Apr 17 21:58:55 1999 GMT