943,492 Members | Top Members by Rank

Ad:
  • C Discussion Thread
  • Unsolved
  • Views: 7518
  • C RSS
Feb 27th, 2004
0

error checking help

Expand Post »
Everyone,

I am having a problem with trying to get this to prompt the user for the correct input. I would like to user to be required to enter numbers only after it prompts him/her at "How much money would you like to convert today? (above 100): " My question is what is the easiest way to get this done?

Also, I am a newbie to this and this is my first programming class so please break things down so even I can understand them.

Thank you for your help.

[PHP]#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 following 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;
}[/PHP]
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
rcjay2 is offline Offline
1 posts
since Feb 2004
Mar 23rd, 2004
0

Re: error checking help

u are almost there. the scanf function returns teh number of correctly read variables. in your while loop, u are testing:
while ((amt <= (float) 100) && (correctItemsRead == 1));

but actually it should be:
while ((amt <= (float) 100) && (correctItemsRead != 1));

when it returns 1, u want to break out of the loop, not the other way around.
Reputation Points: 47
Solved Threads: 2
Junior Poster in Training
infamous is offline Offline
77 posts
since Mar 2004
Aug 20th, 2010
-1
Re: error checking help
hey you are really done pa...try it i think th latter is correct
Reputation Points: 6
Solved Threads: 0
Newbie Poster
gurusaranya is offline Offline
4 posts
since May 2010
Aug 22nd, 2010
0
Re: error checking help
You have declared the name as a float variable. Change it to a char array

Also the correct way to accept a string via scanf statement is
scanf("%s",input);

PS: Using scanf to take user i/p is a bad idea. It usually leads to a wide varieties of problems. Use fgets for taking i/p from the user
Reputation Points: 114
Solved Threads: 104
Master Poster
abhimanipal is offline Offline
736 posts
since Dec 2009

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in C Forum Timeline: Seprate the input
Next Thread in C Forum Timeline: Problem with Linked List





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC