In the example you just gave, exit would work correctly assuming that you obeyed its contract and registered, via atexit, anything that needs to be cleaned up. Assuming that's just a command line calculator for example. Although I can't imagine that a divide by 0 is cause for exiting, in any case. Take care, Sina -----Original Message----- From: programmingblind-bounce@xxxxxxxxxxxxx [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Christopher Coale Sent: Wednesday, April 13, 2011 11:40 PM To: programmingblind@xxxxxxxxxxxxx Subject: Re: again a newbee question Excuse me, Sina, but you don't need to insult my intelligence by telling me to lookup how the function works. I never claimed it didn't work like you stated. And you continually use that against me, saying that I don't? Again, you stick with the straw man, but hey, we all do what we do best. I said that using exit() destroys the structure of a C program. float divide(float x, float y) { if (y == 0. /* optional epsilon comparison */) exit(EXIT_OOPS); return x / y; } That is what I mean by exit() destroying structure. When you start teaching beginner programs that exit() is a good way to leave a program in case of an error, well, take a guess what they do.. I'm not a fan of exit() in any case whatsoever. I'm a fan of cleaning up my own mess. On 4/13/2011 8:16 PM, Sina Bahram wrote: > What are you talking about! > > Exit is part of an API to do exactly that. You can register functions, or > callbacks, that even get called before it exits the > program. Furthermore, it cleanly ends streams so that data isn't lost, and it > also handles temporary file handles. > > I'm sorry, but do you teach posix compliance at all, or anything? > > Because, I'm so confused as to how you don't know this about exit. > > Are you familiar with the atexit function, and how it is used to register > callback events? > > As for C++. If you have properly coded cascading destructors fed by a simple > broadcast message or other form of notification, then > what's the problem with calling exit after that runs? > > Of course you would clean up your external resources before calling exit, but > you can use the exit interface to do even this. In > fact, that's encouraged. So, yes, i am saying they could easily use exit and > not leave one byte of memory unfreed, and do so > cleanly. > > Take care, > Sina > > -----Original Message----- > From: programmingblind-bounce@xxxxxxxxxxxxx > [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Christopher Coale > Sent: Wednesday, April 13, 2011 11:00 PM > To: programmingblind@xxxxxxxxxxxxx > Subject: Re: again a newbee question > > First of all, what you explained to me that it does has nothing to do > with control structure. C and C++ are structured languages, so when > people unnecessarily use things that break the structure (such as goto), > I am not too fond of it. > > So let me get this straight.. you are advocating that a programmer > simply call exit() instead of using the proper API to release resources > they allocated, prior to quitting the program? > > On 4/13/2011 7:41 PM, Sina Bahram wrote: >> I don't understand what that means. >> >> Totally destroys what structure? >> >> It's an exit ... of course it destroys everything. >> >> Furthermore, exit is an extremely clean way of exiting a program. It's a >> million times better than return 0. >> >> It actually calls, in reverse order of course, all functions which >> registered via atexit. It also closes streams, not only IO ones >> for that matter, and it gets rid of/cleans temporary files. >> >> Quite puzzled ... >> >> Take care, >> Sina >> >> -----Original Message----- >> From: programmingblind-bounce@xxxxxxxxxxxxx >> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Christopher Coale >> Sent: Wednesday, April 13, 2011 9:38 PM >> To: programmingblind@xxxxxxxxxxxxx >> Subject: Re: again a newbee question >> >> Alright, I just wanted to force you to clarify, so you don't give Ashish >> the wrongi dea. ;) I grade C++ programming assignments, and I see new >> C++ programmers using the exit function simply because it's convenient, >> but it totally destroys the structure. >> >> On 4/13/2011 6:35 PM, Ken Perry wrote: >>> Well I was using exit as a concept more than a method since depending on the >>> gui you code in there are things like finish, exit, delete and all kinds of >>> way to make a program die. >>> >>> Ken >>> >>> -----Original Message----- >>> From: programmingblind-bounce@xxxxxxxxxxxxx >>> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Christopher >>> Coale >>> Sent: Wednesday, April 13, 2011 9:28 PM >>> To: programmingblind@xxxxxxxxxxxxx >>> Subject: Re: again a newbee question >>> >>> Careful with saying "until you call exit." You don't want to give the >>> impression that the exit() function is okay in a structured program, do >>> we? ;) >>> >>> On 4/13/2011 6:25 PM, Ken Perry wrote: >>>> Nod you will not need things like scanf and getch and things of the like >>>> when you get into serious coding because you will be probably building >>>> windows apps of some kind and the window will remain open till you call >>>> exit. This is just while you're learning so feel free to use scanf, >>> getch, >>>> getchar, or any of the things like read to just hold the program till your >>>> ready to close. >>>> >>>> Ken >>>> >>>> -----Original Message----- >>>> From: programmingblind-bounce@xxxxxxxxxxxxx >>>> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of ashish rohtagi >>>> Sent: Wednesday, April 13, 2011 9:05 PM >>>> To: programmingblind@xxxxxxxxxxxxx >>>> Subject: Re: again a newbee question >>>> >>>> sorry, I corrected the mistake about printf and scanf. thanks for the >>>> advice. take care, regards. ashish >>>> >>>> On 4/14/11, Littlefield, Tyler<tyler@xxxxxxxxxxxxx> wrote: >>>>> I'm sorry, getch should be getchar. Also: it's fairly bad coding style >>>>> to put a printf on the same line as a scanf. Unless you have good >>>>> reason, try to keep your code separated. It makes it easier to read and >>>>> people don't miss things quite as easily. >>>>> On 4/13/2011 6:50 PM, ashish rohtagi wrote: >>>>>> like this?? #include<stdio.h> >>>>>> >>>>>> int main() >>>>>> { >>>>>> char me[20]; >>>>>> >>>>>> >>>>>> >>>>>> printf("What is your name?"); scanf("%s",&me); >>>>>> printf("Darn glad to meet you, %s!\n",me); >>>>>> >>>>>> scanf("s%",&me); >>>>>> >>>>>> return(0); >>>>>> } but result is still the same. can I use getch fungtion? if yes >>>>>> please tell me how to use it . take care, regards. >>>>>> >>>>>> >>>>>> On 4/14/11, Jared Wright<wright.jaredm@xxxxxxxxx> wrote: >>>>>>> It goes right between the last printf statement and the return >>>>>>> statement. It's job is to hold the program open at the end, so it >>> should >>>>>>> be the last statement before return, which ends the program. >>>>>>> On 4/13/2011 12:09 PM, ashish rohtagi wrote: >>>>>>>> hi Tyler, thanks for your suggestion, but I am unable to understand >>>>>>>> where to put second scanf. will you just once show me? take care, >>>>>>>> regards. ashish >>>>>>>> >>>>>>>> On 4/13/11, Littlefield, Tyler<tyler@xxxxxxxxxxxxx> wrote: >>>>>>>>> Like ken said, use scanf to catch it before the window closes, or run >>>>>>>>> it >>>>>>>>> in a command line. Here's what's happening: >>>>>>>>> You open the process, and the first scanf call blocks; that is to >>> say, >>>>>>>>> it will not process anything, it is simply waiting for the user to >>>>>>>>> input >>>>>>>>> something. But after it's done printing, there is no reason why it >>>>>>>>> should stay open because you don't tell it to. So run from the >>> command >>>>>>>>> prompt, use getch() to let you hit enter before it closes or use >>>>>>>>> another >>>>>>>>> scanf. >>>>>>>>> On 4/13/2011 9:32 AM, ashish rohtagi wrote: >>>>>>>>>> friends, thanks for all the encouragement. here is my problem, I >>>> want >>>>>>>>>> to use scanf fungtion. in input and output but as soon as I give my >>>>>>>>>> input and press enter the window disappears. it does not give output >>>>>>>>>> based on my input. here is the code. #include<stdio.h> >>>>>>>>>> >>>>>>>>>> int main() >>>>>>>>>> { >>>>>>>>>> char me[20]; >>>>>>>>>> >>>>>>>>>> printf("What is your name?"); scanf("%s",&me); >>>>>>>>>> printf("Glad to meet you, %s!\n",me); return(0); >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 4/13/11, Littlefield, Tyler<tyler@xxxxxxxxxxxxx> wrote: >>>>>>>>>>> O. oops. In my defense, I haven't found coffee. :) >>>>>>>>>>> On 4/13/2011 7:46 AM, Jared Wright wrote: >>>>>>>>>>>> It's there, just on the same line as the printf statement. >>>>>>>>>>>> On 4/13/2011 9:35 AM, Littlefield, Tyler wrote: >>>>>>>>>>>>> good job on using int main, just don't forget a return 0; when >>> you >>>>>>>>>>>>> are >>>>>>>>>>>>> done. between the printf and the closing brace. >>>>>>>>>>>>> On 4/13/2011 6:36 AM, ashish rohtagi wrote: >>>>>>>>>>>>>> here is my code it compiles correctly but text just shows on the >>>>>>>>>>>>>> screen for 1 second, I want it to stay. #include<stdio.h> >>>>>>>>>>>>>> >>>>>>>>>>>>>> int main() >>>>>>>>>>>>>> { >>>>>>>>>>>>>> printf("I will learn programming!\n"); return(0); >>>>>>>>>>>>>> } >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 4/13/11, DaShiell, Jude T. CIV NAVAIR 1490, 1, 26 >>>>>>>>>>>>>> <jude.dashiell@xxxxxxxx> wrote: >>>>>>>>>>>>>>> You didn't put your printf statement in your message, but let >>> me >>>>>>>>>>>>>>> make a >>>>>>>>>>>>>>> guess. You didn't put a (\n) in before the closing quote mark >>> so >>>>>>>>>>>>>>> you >>>>>>>>>>>>>>> just put text on the screen without a line ending. That could >>> be >>>>>>>>>>>>>>> one >>>>>>>>>>>>>>> contributing factor. Another might be you didn't put an >>> #include >>>>>>>>>>>>>>> <stdio.h> statement in at the top of your program and >>>>>>>>>>>>>>> maybe >>>>>>>>>>>>>>> used >>>>>>>>>>>>>>> #include<conio.h>. If that's the case, don't use printf with >>>>>>>>>>>>>>> conio.h >>>>>>>>>>>>>>> unless you also include stdio.h. For conio.h, cprintf is the >>>>>>>>>>>>>>> function >>>>>>>>>>>>>>> you want. Hope this helps. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -----Original Message----- >>>>>>>>>>>>>>> From: programmingblind-bounce@xxxxxxxxxxxxx >>>>>>>>>>>>>>> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of >>>>>>>>>>>>>>> ashish >>>>>>>>>>>>>>> rohtagi >>>>>>>>>>>>>>> Sent: Wednesday, April 13, 2011 8:04 >>>>>>>>>>>>>>> To: programmingblind@xxxxxxxxxxxxx >>>>>>>>>>>>>>> Cc: punitdiwan@xxxxxxxxx >>>>>>>>>>>>>>> Subject: again a newbee question >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> friends, sorry here I am with another foolish question, sorry >>>> but >>>>>>>>>>>>>>> here >>>>>>>>>>>>>>> is no one to teach and I am learning myself. when I print any >>>>>>>>>>>>>>> text >>>>>>>>>>>>>>> on >>>>>>>>>>>>>>> screen using printf it quickly disappears. what should I do >>> that >>>>>>>>>>>>>>> it >>>>>>>>>>>>>>> should stay? take care, regards. ashish >>>>>>>>>>>>>>> __________ >>>>>>>>>>>>>>> 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 >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> >>>>>>>>>>> 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 >>>>>>>>>> >>>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>>> 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 >>>>>> >>>>>> >>>>> -- >>>>> >>>>> 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 >>> >> __________ >> 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 __________ View the list's information and change your settings at //www.freelists.org/list/programmingblind