用过Dev-C++的人, 一定知道要停止输出屏幕, 必须在main体内加上类似system("pause")或者cin.get()这样的语句。下面我们利用一些C++的特性以及标准库函数,示范如何把system("pause")隐藏起来。 /* Pause.h */ #include <iostream> #include <cstdlib>
#ifndef __CPAUSE__ #define __CPAUSE__ class CPause { static void system(){ std::system("pause");} public: CPause(){ std::atexit(&CPause::system); } }m_pause_;
#endif //__CPAUSE__
其中atexit是指定一个函数在程序结束时运行, m_pause_是CPause的实例。它的构造函数会在main()主函数之前执行, 其实也就是利用全局对象的这个特性。
运行例子: /* example.cpp */ #include <iostream> #include "pause.h" // 现在只要定义pause头文件, 要可以把输出屏停住了.
using namespace std;
int main() { cout << "Hello, World" << endl; return (0); } 
|