posts - 0,  comments - 0,  trackbacks - 0
原文出处http://www.gidnetwork.com/b-61.html

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

by: WaltP - Sep 20, 2005

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.

But using system("PAUSE") is like burning your furniture for heat when you have a perfectly good thermostat on the wall.

Many people, instructors included, for some inexplicable reason think that making a call to the operating system and running a system command to temporarily halt a program is a good thing. Where they get this idea is beyond me. Reasons:

  • It's not portable. This works only on systems that have the PAUSE command at the system level, like DOS or Windows. But not Linux and most others...

  • It's a very expensive and resource heavy function call. It's like using a bulldozer to open your front door. It works, but the key is cleaner, easier, cheaper. What system() does is:

    1. suspend your program

    2. call the operating system

    3. open an operating system shell (relaunches the O/S in a sub-process)

    4. the O/S must now find the PAUSE command

    5. allocate the memory to execute the command

    6. execute the command and wait for a keystroke

    7. deallocate the memory

    8. exit the OS

    9. resume your program

    There are much cleaner ways included in the language itself that make all this unnessesary.

  • You must include a header you probably don't need: stdlib.h or cstdlib

 

It's a bad habit you'll have to break eventually anyway.

Instead, use the functions that are defined natively in C/C++ already. So what is it you're trying to do? Wait for a key to be pressed? Fine -- that's called input. So in C, use getchar() instead. In C++, how about cin.get()? All you have to do is press RETURN and your program continues.

posted on 2009-06-19 17:42 豆芽小文 阅读(130) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航:   博客园   博客园最新博文   博问   管理



<2026年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿

文章档案(4)

搜索

  •  

最新评论