Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C (http://www.go4expert.com/forums/c/)
-   -   atoi/atof problem (http://www.go4expert.com/forums/atoi-atof-problem-t21293/)

askmewhy25 11Mar2010 12:08

atoi/atof problem
 
How will I capture a string or char input if I have a checker that is equated to zero
because atoi/atof reads the string or char as zero

Code:

#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>

int a(double sales,double sepcost)
{
    double NRV;
    NRV=sales-sepcost;
    printf("The Net Realizable Value is: %.3lf\n",NRV);

}
int main()
{
    double sales,sepcost;
    char error[128];
 
    do{
      system("cls");
      printf("Please input your Sales Value: \n");
      scanf("%s",&error);
      sales=atof(error);
      printf("Please input your Separable Cost: \n");
      scanf("%s",&error);
      sepcost=atof(error);
      if(sales<0){
        system("cls");
        printf("Invalid input for Sales, Please try again!!\n");
        system("pause");
        }
      if(sepcost<0){
        system("cls");
        printf("Invalid input for Seperabe Cost, Please try again!!\n");
        system("pause");
        }
      }while(sales<0||sepcost<0);
      a(sales,sepcost);

getch();
}


ungalnanban 11Mar2010 16:15

Re: atoi/atof problem
 
atoi and atof function will return the converted values.

your checking the return value is 0 or not. instead of you can check the given string is digit or not using isdigit() or isalpha()

askmewhy25 11Mar2010 16:17

Re: atoi/atof problem
 
How to do that?I don't know how to use the ctype.h

xpi0t0s 12Mar2010 16:31

Re: atoi/atof problem
 
isdigit takes a char parameter and returns TRUE or FALSE depending on whether it's a digit or not. So the following will output 01:
Code:

printf("%c%c", isdigit('x')?'1':'0', isdigit('3')?'1':'0');
To determine whether input is valid you have to scan the string and see what you find. "123a456" is not a valid integer because 'a' is not a digit. "-2.35e+17" is a valid floating point number and the validation for that is more complex: optional sign, a digit, a dot, some digits, an e, optional sign, some digits.


All times are GMT +5.5. The time now is 12:14.