本文主要是介绍C++程序运行完后不让窗口一闪而过的方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
可能经常会遇到这样的情况,想要程序运行完后,窗口继续保留。
VC或VS下常用的方法是在main函数退出前加一句:system(“pause”)这样的语句,但是这种做法有一个问题就是:在这样的情况下,其实程序并没有真正结束。也就是说main()函数并没有执行完。假设要看一下析构函数的自动调用,就看不到了。比如下面的例子
#include<iostream>
#include<cstring>
using namespace std;class Person{
public:Person(char* tmp){cout<<"Construct object"<<tmp<<endl;pname=new char[strlen(tmp)+1];if(pname!=0)strcpy(pname,tmp);}~Person(){cout<<"Delete object"<<pname<<endl;pname[0]='\0';delete pname;}private:char * pname;
};
int main(){Person p1("qqqq");Person p2("eeee"); return 0;//system("pause");
}
这个程序运行完之后就会退出,如果想看一下析构函数的自动调用,是无法看到的。
有两种方法:第一种,直接把源文件编译成.exe文件,然后把它拖到cmd窗口中运行,如下图:
第二种方法:在VS中配置项目属性->链接器->系统->子系统设为:控制台(/SUBSYSTEM:CONSOLE),然后用ctrl+F5运行(不调试运行)。如下图:
这篇关于C++程序运行完后不让窗口一闪而过的方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!