-
error chekcing help
I need help with error checking. I would like to have this error check the input to make sure that the user inputs numbers instead of letters. How would I go about doing this?
I would like it to error check at the point where it asks the user "how much would you like to convert today?"
Code:
#include <stdio.h>
int main (int argc, char** argv)
{
float name; //declares a variable "name"
float canada; //declares a variable "canada"
float sa; //declares a variable "sa"
float botswana; //declares a variable "botswana"
float china; //declares a variable "china"
float russia; //declares a variable "russia"
float amt; //declares a variable "amt"
int correctItemsRead;
printf("\n"); //Skips a line
printf("Currency Conversion\n"); //Displays Currency Conversion to screen
printf("\n"); //Skips a line
printf("I can convert US dollars to the folling currencies: \n"); //Prints statement to the screen
printf("\n"); //Skips a line
printf("Canadian Dollars\nSouth African Rand\nBotswana Pula\nChina Renminbi\nRussian Rubles\n"); //Lists the different currencies that will be converted
printf("\n"); //Skips a line
do //This says to do what is in the braces at least once
{
printf("How much money would you like to convert today? (above 100): ");
correctItemsRead = scanf("%f", &amt);
}
while ((amt <= (float) 100) && (correctItemsRead == 1)); // this says that if amt <= 100 do what is in the braces again
//(float) tells the compiler to treat the value next to it
//like a float instead of a literal int
printf("I would be happy to help you with that, Thank you.\n"); //Prints statement to the screen
canada=1.324*amt; //Sets "canada" to 1.324 x "amt"
sa=6.865*amt; //Sets "sa" to 6.865 x "amt"
botswana=4.558*amt; //Sets "botswana" to 4.558 x "amt"
china=8.265*amt; //Sets "china" to 8.265 x "amt"
russia=29.234*amt; //Sets "russia" to 29.234 x "amt"
printf("\n"); //Skips a line
printf("In Canadian Dollars you would have = %.2f\n",canada); //Displays dollar equivilant to user input as Canadian Dollars
printf("In South African Rand you would have = %.2f\n",sa); //Displays dollar equivilant to user input as Canadian Dollars
printf("In Botswana Pula you would have = %.2f\n",botswana); //Displays dollar equivilant to user input as Canadian Dollars
printf("In China Renminbi you would have = %.2f\n",china); //Displays dollar equivilant to user input as Canadian Dollars
printf("In Russian Rubles you would have = %.2f\n",russia); //Displays dollar equivilant to user input as Canadian Dollars
printf("\n"); //Skips a line
printf("I would go for the Russian Rubles. At least you'll feel rich!\n"); //Prints statement to screen
printf("\n"); //Skips a line
printf("\n"); //Skips a line
printf("By the way, Could I get your name please, "); //Prints atatement to the screen and capture users name
scanf("%s",&name); //Captures user input
printf("\n"); //Skips a line
printf("\n"); //Skips a line
printf("\n"); //Skips a line
printf("\n"); //Skips a line
printf("\n"); //Skips a line
printf("You have a wonderful adventure,%s.\n",&name); //Prints users input to the screen
getchar();
return 0;
}
-
-
Hammer,
Thanks for the reply. I am totally new to this and I am taking my first ever programming class. Out of these examples which one would I use?
-
To do this:
>>error check the input to make sure that the user inputs numbers instead of letters
use option 4.
You cannot use scanf(), as it will only read the numbers, not the letters. If you want to validate the user did it right, you need to read everything into your program, and perform manual validation.