|
-- Posted by Jx2 Anarchy at 1:54 pm on May 15, 2008
im wiritng a program for my C++ class, here is the source http://www.miraclesalad.com/webtools/clip.php?clip=1491 its not completed, alot of stuff is left out, but, im trying to figure out why im getting the issue i am. (for the questions asked to continue, Y and N are answers atm) basically when i run the program and go into the fortune part of it (b) and i ask it a question, it outputs an answer, but instead of asking to continue, it goes over the answer, assumes you want to continue, and give an answer for a question you dont have in. then askes if you want to continue. obviusly this isnt right, and, when asked with anything that is only one word (no spaces) it seems to work correctly, anyone have an idea of what i have wrong here?
-- Posted by GdFtherOFCOWS at 2:08 pm on May 15, 2008
Sounds like you have having trouble with the char input. Try this. char question[75]; "Put that underint programContinue = 1;" and "char menuChoice;" Delete the "string question" in function();
-- Posted by Just Waiting Here at 2:26 pm on May 15, 2008
I'm not too familiar with cin, so I looked around. http://www.macs.hw.ac.uk/~pjbk/pathways/cpp1/node185.html
When the input stream cin is used space characters, newline etc. are used as separators and terminators. Thus when inputting numeric data cin skips over any leading spaces and terminates reading a value when it finds a white-space character (space, tab, newline etc. ). This same system is used for the input of strings, hence a string to be input cannot start with leading spaces, also if it has a space character in the middle then input will be terminated on that space character. 
Looks like you may have to make a loop of some kind to pick it all up? I dunno... I also thought of what GdFtherOFCOWS said, and hopefully that will work. Otherwise, you may need a loop to pick up all the words in the string, and only consider it as one...? Lol, sorry I'm useless, it's been 4 years now since I've touched C++ and I never actually was taught the cin function... I'm interested in knowing how you got around the problem though, if you do figure it out :). But I think the problem all comes to the string and how cin works.
-- Posted by Jx2 Anarchy at 2:43 pm on May 15, 2008
the thing that gets me is i know it ran BEFORE i put it into this code (it was its own beforehand, i just copied it in) after i put it in though, it started this, and i have no clue in how to fix it. i tired what GdFtherOFCOWS said, but i still get the same error.
-- Posted by Jx2 Anarchy at 2:46 pm on May 15, 2008
and incase it helps, the origional source of the fortuneteller http://jx2anarchy.com/random/source.txt
-- Posted by JudeLaurence at 7:28 pm on May 15, 2008
In school I never used the string type. After using cin, there is a newline character trailed behind. Use a "dummy" variable to grab the newline or simply have two cin>> quit1; statements. That'll fix it. :)
-- Posted by i who have nothing at 11:15 am on May 16, 2008
add cin.clear(); above cout<<"Would you like to ask the fortune teller another question?"< the input stream is retaining characters and messing everything up.
|