GIDForums  

Go Back   GIDForums > Computer Programming Forums > C Programming Language
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

 
 
Thread Tools Search this Thread Rate Thread
  #1  
Old 20-Sep-2005, 00:40
WaltP's Avatar
WaltP WaltP is offline
Outstanding Member
 
Join Date: Feb 2004
Location: Midwest US
Posts: 3,328
WaltP is a name known to allWaltP is a name known to allWaltP is a name known to allWaltP is a name known to allWaltP is a name known to allWaltP is a name known to all
Post

Re: Things to Avoid in C/C++ -- system("pause"), Part 4


I just posted a GID Community blog entitled: Things to Avoid in C/C++ -- system("pause"), Part 4.

Quote:
system("pause")

I've never understood why system("PAUSE") is so popular. Sure it will pause a program before it exits. This pause is very useful when your IDE won't wait as you test a program and as soon as the program finished the window closes taking all your data with it. read more...

Please let me know what you think.

This is an auto-generated message posted by GIDNetwork™ on behalf of the author.
__________________

During the election they said Obama could only be elected when pigs fly. Well, we currently have an epidemic of Swine Flu. Coincidence?
  #2  
Old 26-Apr-2006, 06:53
hollystyles hollystyles is offline
New Member
 
Join Date: Apr 2006
Posts: 1
hollystyles is on a distinguished road

Re: Things to Avoid in C/C++ -- system("pause"), Part 4


I read your article and it makes sense. But it also raises another question for me. Why does it exist?
  #3  
Old 26-Apr-2006, 15:41
WaltP's Avatar
WaltP WaltP is offline
Outstanding Member
 
Join Date: Feb 2004
Location: Midwest US
Posts: 3,328
WaltP is a name known to allWaltP is a name known to allWaltP is a name known to allWaltP is a name known to allWaltP is a name known to allWaltP is a name known to all

Re: Things to Avoid in C/C++ -- system("pause"), Part 4


Because the system() function can be used to execute any operating system command, like dir, ls, rename, etc. Even shutdown given the proper command syntax.

The pause command is used in batch files to pause execution of the file.

And like many things in life, you are allowed to combine things that should not be combined, like peanut butter and pickles. Both are useful, but together they suck.
__________________

During the election they said Obama could only be elected when pigs fly. Well, we currently have an epidemic of Swine Flu. Coincidence?
  #4  
Old 24-Sep-2008, 21:16
switch72 switch72 is offline
New Member
 
Join Date: Sep 2008
Posts: 3
switch72 is on a distinguished road

Re: Things to Avoid in C/C++ -- system("pause"), Part 4


The problem is when you try to substitute one command for another, you often times lose functionality. The problem with the proposed solution is that it doesn't do the same thing as 'pause'. getchar and get require you to press the return key. 'pause' let's you exit on any key press. So the user has to press specific key, and translating that to the user can be more difficult than you think. What if the users keyboard doesn't have a return key, but rather an enter key. Users don't always know these mean the same thing.

The other problem is that getchar() at least takes the last keystrok out of the keyboard buffer. But the return stroke isn't removed from the buffer when entering data. So the problem is that if the last thing you did before calling getchar was hitting the return key to enter data, then getchar will pull that last return from the buffer and your program will exit anyway, so in order to insure the program pauses correctly, you must call getchar twice. But then what if you have a program that sometimes ends on data entry, and sometimes doesn't. Then occasionally you will have to instruct the user to press the return key twice. But sometimes only once. And now you have suddenly gotten into a lot more trouble. If you are pausing your program anyway you aren't exactly in the middle of a long series of calculations and so efficiency doesn't matter anyway. Just go ahead and call system("pause").

That's my opinion anyway.
  #5  
Old 24-Sep-2008, 21:45
dlp dlp is offline
Member
 
Join Date: May 2006
Posts: 156
dlp has a spectacular aura about

Re: Things to Avoid in C/C++ -- system("pause"), Part 4


The problem with using it is when you start mixing portable C/C++ with code that is not portable. Heck, my CS class told us to use system( "pause" ) in an intro C++ course, and most of the students had no idea it was a Windows only use of the system command. It was a stupid problem when they went to later classes and started programming in Linux environments.
  #6  
Old 24-Sep-2008, 22:13
switch72 switch72 is offline
New Member
 
Join Date: Sep 2008
Posts: 3
switch72 is on a distinguished road

Re: Things to Avoid in C/C++ -- system("pause"), Part 4


Oh I agree. I think everything Walt said initially was correct as well. I'm just saying that, when you want to use system("pause") it isn't so much as a bad thing. Really though, there needs to be a C command that mimics this, or, you need to write your own function that does it.
  #7  
Old 24-Sep-2008, 23:01
WaltP's Avatar
WaltP WaltP is offline
Outstanding Member
 
Join Date: Feb 2004
Location: Midwest US
Posts: 3,328
WaltP is a name known to allWaltP is a name known to allWaltP is a name known to allWaltP is a name known to allWaltP is a name known to allWaltP is a name known to all

Re: Things to Avoid in C/C++ -- system("pause"), Part 4


If you wish to be a professional programmer, system("pause") is a bad thing, for all the reasons I stated. And since C/C++ is not designed with keyboard I/O in mind, the functionality you are missing with proper coding doesn't really exist anyway. They are nonportable enhancements in the first place.

If you wish to disagree, that's your prerogative. But, at the expense of flogging a deceased equine, I for one refuse to go to the corner store via Northwest Airlines just because they serve pretzels.
__________________

During the election they said Obama could only be elected when pigs fly. Well, we currently have an epidemic of Swine Flu. Coincidence?
  #8  
Old 25-Sep-2008, 09:44
switch72 switch72 is offline
New Member
 
Join Date: Sep 2008
Posts: 3
switch72 is on a distinguished road

Re: Things to Avoid in C/C++ -- system("pause"), Part 4


Unless what you are trying to do is go for a flight and eat pretzels. If that's the case, walking to the corner store won't do.
 
 

Recent GIDBlogGang violence and the drug culture by crystalattice

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: Things to Avoid in C/C++ -- gets() , Part 1 WaltP C Programming Language 5 21-Jun-2007 12:13
Re: Things to Avoid in C/C++ -- feof(), Part 3 WaltP C Programming Language 0 19-Sep-2005 20:00
Re: Things to Avoid in C/C++ -- fflush(stdin), Part 2 WaltP C Programming Language 0 17-Sep-2005 20:39
Web Site Optimization - the basic things dimos31 Search Engine Optimization Forum 3 19-Jun-2005 12:00
[Tutorial] Pointers in C (Part II) Stack Overflow C Programming Language 0 27-Apr-2005 17:36

Network Sites: GIDNetwork · GIDWebHosts · GIDSearch · Learning Journal by J de Silva, The

All times are GMT -6. The time now is 07:00.


vBulletin, Copyright © 2000 - 2009, Jelsoft Enterprises Ltd.