How to capture strings or char inputs using atoi/atof if your range is 0?

askmewhy25's Avatar, Join Date: Jan 2010
Go4Expert Member
How to capture strings or char inputs using atoi/atof if your range is 0
becuse my programs continue if the input is a char or string due to that the
string or char is read or equal to 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();
}
itstimetojazz's Avatar, Join Date: Sep 2009
Light Poster
what characters or strings are given as input to the atof in the above program?
virxen's Avatar, Join Date: Nov 2009
Pro contributor
in c++ you can do this

Code:
#include <iostream>
#include <conio.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");
            
      
      std::cin>>sales;

      if (std::cin.fail()){             
          std::cin.clear();
          std::cin.ignore(std::numeric_limits<int>::max(),'\n');
          sales=-1;
      }
            if(sales<0){
        system("cls");
        printf("Invalid input for Sales, Please try again!!\n");
        system("pause");
        }else{
      
      printf("Please input your Separable Cost: \n");
      std::cin>>sepcost;
      if (std::cin.fail()){             
          std::cin.clear();
          std::cin.ignore(std::numeric_limits<int>::max(),'\n');
          sepcost=-1;
      }
      

      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();
}
askmewhy25 like this