I am tring to make a function to check to make sure the floating piont value is a valid number. i am having some problem getting it to work correctly.
any help would be great.
thanks
Sal
Code:
#include <stdio.h>
#include "floatgetnum.h"
/* prototype */
float getnum();
int main()
{
float retval=0;
printf("Please enter a floating point number");
do
{
retval = getnum();
printf("The number was %f\n", retval);
}while (retval !=-1);
return 0;
}
float getnum()
{
char ch;
int nflag,dflag,number,pos=0;
int dplace=1;
ch=getchar();
while (ch!='\n'&&ch!=' ')
{
switch (ch)
{
case '-':
nflag=1;
pos++;
break;
case '+':
pos++;
break;
case '.':
if (dflag==1)
{
printf ("Invaild user input\n");
return EOF;
}
else
{
dflag++;
pos++;
}
break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
number*=10;
number+=atoi(&ch);
if (dflag==1)
{
dplace*=10;
}
pos++;
break;
}
ch=getchar();
if (nflag==1)
{
number*=-1;
}
if (dflag==1)
{
number=number/dplace;
}
}
return number;
}/*function*/