If Else If Help plz

Please support our C++ advertiser: Intel Parallel Studio Home
Reply

Join Date: Jul 2006
Posts: 4
Reputation: killerdrummer2 is an unknown quantity at this point 
Solved Threads: 0
killerdrummer2 killerdrummer2 is offline Offline
Newbie Poster

If Else If Help plz

 
0
  #1
Jan 12th, 2007
Hi, im a new to C++ and i am having an issue with if else if commands. I have the code below, and i am attempting to make it so when prompted "Do you want the correct answers?" you can type yes and it will display the answers, or type no to display "have a nice day" and if neither are typed then it says "you did not enter a valid character" and thats the end of the program.

if you have any help please do leave a message, keep in mind im new to C++

Thanks
-Scott

  1.  
  2. //NOT ENTIRE PROGRAM
  3. //Additional work
  4. cout << "Do you want the correct answers? (Type yes or no)\n";
  5.  
  6. char x;
  7. cin >> x;
  8. //cin.ignore(50, '\n');
  9.  
  10.  
  11. float PIa=3.14159;
  12. float PI2a=3.14285714;
  13. float Ea=2.718281828459;
  14. if (x == yes)
  15. {
  16. system("CLS");
  17. cout << "Have a nice day!\n";
  18. cin.ignore(50, '\n');
  19. }
  20. else if (x == no)
  21. {
  22. cout << "\"PI\" is equal to: " << PIa << endl
  23. << "\"E\" is equal to: " << Ea << endl
  24. << "\"22/7\" is equal to: " << PI2a << endl;
  25.  
  26. }
  27. else
  28. {
  29. cout << "You did not enter a valid character\n";
  30. }
  31. system("PAUSE");
  32. return 0;
  33. }
Reply With Quote Quick reply to this message  
Join Date: Apr 2006
Posts: 5,051
Reputation: John A is a splendid one to behold John A is a splendid one to behold John A is a splendid one to behold John A is a splendid one to behold John A is a splendid one to behold John A is a splendid one to behold John A is a splendid one to behold John A is a splendid one to behold 
Solved Threads: 332
Team Colleague
John A's Avatar
John A John A is offline Offline
Vampirical Lurker

Re: If Else If Help plz

 
0
  #2
Jan 12th, 2007
You have to remember that this code is only inputting one charecter:
  1. cout << "Do you want the correct answers? (Type yes or no)\n";
  2.  
  3. char x;
  4. cin >> x;
Because char only can hold one charecter, you'll need an array of letters to be able to hold a response that's more than one letter long. For example:
  1. char name[200]; // holds a name up to 200 charecters
Better yet, to make it more C++, use a string, which does not have to be an array, and instead dynamically allocates the memory needed.

Of course, you may have only been intending to hold one charecter, but then when I saw this, it made be think that you wanted to input more:
  1. if (x == yes)
Now you've got several things wrong with this. The most obvious mistake is that you're not using quotes around the string; thus it will confuse the compiler. Secondly, unless the variable is only 1 charecter long (see previous section), you cannot compare C-style strings with ==. If you want to compare a string, you must use strcmp(). Yet another reason to use string instead of char (strings can be compared with ==).

Lastly, this isn't entirely incorrect but...
  1. system("PAUSE");
A more portable and standard method to do this is simply to use
  1. cin.get();

Hope this helps
"Technological progress is like an axe in the hands of a pathological criminal."

All my posts may be freely redistributed under the terms of the MIT license.
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:



Similar Threads
Other Threads in the C++ Forum
Thread Tools Search this Thread



Tag cloud for C++
About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC