I don't see why you would use goto for this. I would tackle it this way: std::string test; std::cin >> test; if (test == "fine") { std::cout << "It works!" << endl; } If you want to use code that prints it works lots of times and you don't want to have to keep typing the cout line, stick it into a function and call it when you need it. Like this: // Function displays a message telling the user that what they did works. void good () { std::cout << "It works." << endl; } // Function displays a message saying it didn't work. void bad () { std::cout << "Opps, try again!": << endl; } Then, all you have to do is call it if the situation warrants it: Int main () { std::cin >> test; if (test == "fine") { good (); } else { bad (); } return 0; } Better still would be to put these into a class called Feedback and call them as member functions. Hth, Alex M On 2/9/11, Kristoffer Gustafsson <kg84@xxxxxxxxxxxx> wrote: > Hi. > ok, some code of mine looks like > #include <iostream> > int main() > { > string test; > cin >>test; > if (test=="fine" goto good; > > good: > cout <<"it works!"; > return 0; > } > > I try this and I get expected `before goto. > What can be wrong? > /Kristoffer > > ----- Original Message ----- > From: "Ken Perry" <whistler@xxxxxxxxxxxxx> > To: <programmingblind@xxxxxxxxxxxxx> > Sent: Wednesday, February 09, 2011 7:53 PM > Subject: RE: help with c++ if test > > > It is easy to do text adventures or any programming without goto. Note that > my commercial mud has 0 goto statements in it. Now all classes in college > will tell you to avoid goto unless you're dealing with programming operating > systems and need to be able to jump out of scope. Which is one of the > reasons you do not want to use goto. For example > > Void myfunc(){ > Goto two; > } > > Void myFunc2(){ > Two: > > } > > You can actually jump function to function with goto which breaks all kinds > of things in functional and object oriented programming. Now that is > necessary some times when doing error handling. The truth is though if your > coding your own application you really should never need goto. If you find > yourself using goto you have probably designed your program wrong. > > I will not go into a deep why or why not to use it because if your thinking > you cannot create an adventure game without it you will not understand a lot > of my explanation. I think you need to go through some tutorials on c or > c++ which ever one you're using because you have a lot to learn. > > > > Ken > > -----Original Message----- > From: programmingblind-bounce@xxxxxxxxxxxxx > [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Kristoffer > Gustafsson > Sent: Wednesday, February 09, 2011 1:41 PM > To: programmingblind@xxxxxxxxxxxxx > Subject: Re: help with c++ if test > > Hi. > Without goto it would be very hard to do text adventures. > I don't think it can be done, or can it? > Also, if I want my program to exit instead of continuing, how do I do? > I mean for example, if I die in an adventure, I want to exit the program at > that time, not continue the game. > /Kristoffer > ----- Original Message ----- > From: "Littlefield, Tyler" <tyler@xxxxxxxxxxxxx> > To: <programmingblind@xxxxxxxxxxxxx> > Sent: Wednesday, February 09, 2011 7:28 PM > Subject: Re: help with c++ if test > > >> That produces all sorts of problems. jumping to the bottom of a loop is no >> problem with a goto, and it avoids issues with your exiting variable. it's >> also quicker, because you just jump to the bottom. otherwise you may >> break, but it's still going to have to do one more check (two, actually, >> depending on how the compiler does things) to see if exiting is false. >> On 2/9/2011 11:23 AM, Lex wrote: >>> 09.02.2011 20:17, Littlefield, Tyler пишет: >>>> really really highly recommend you avoid goto. This isn't basic, and >>>> they're not very useful except for in some odd cases, far and few >>>> between. Such as jumping out of two nested loops like so: >>>> int i, j; >>>> for (i = 0; i < 100; i++) >>>> { >>>> for (j = 0; j < 100; j++) >>>> { >>>> if (i+j == 100) >>>> goto botttom; >>>> } >>>> } >>>> bottom: >>>> //do something here >>> >>> Actually, effect you're trying to achieve is more correctly by the >>> conditional variable (at least in terms of procedural programming): >>> bool exiting=false; >>> for (i = 0; i < 100 && !exiting; i++) >>> { >>> for (j = 0; j < 100 && !exiting; j++) >>> { >>> if (i+j == 100) >>> exiting=true; >>> } >>> } >>> >>> >>> or may be even >>> for (j = 0; j < 100; j++) >>> { >>> if (i+j == 100) >>> { >>> exiting=true; >>> break; >>> } >>> } >>> } >>> >>> >>> Lex >>> >>> __________ >>> View the list's information and change your settings at >>> //www.freelists.org/list/programmingblind >>> >>> >> >> >> -- >> >> Thanks, >> Ty >> >> __________ >> View the list's information and change your settings at >> //www.freelists.org/list/programmingblind > > __________ > View the list's information and change your settings at > //www.freelists.org/list/programmingblind > > __________ > View the list's information and change your settings at > //www.freelists.org/list/programmingblind > > __________ > View the list's information and change your settings at > //www.freelists.org/list/programmingblind > > __________ View the list's information and change your settings at //www.freelists.org/list/programmingblind