2 baidu 24736703 baidu_24736703 于 2016.04.23 15:46 提问

为什么我这个c++程序运行后直接关掉了窗口,就是应该运行出来了,但是还没来得及看结果就被自动关了

程序代码如下:
#include "stdafx.h"
#include
#include

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
double daphne = 100.0;
double cleo = 100.0;
const double rate_1 = 0.1;
const double rate_2 = 0.05;
double year = 0;
double temp = cleo - daphne;
while (temp <= 0)
{
year++;
daphne = daphne + daphne*rate_1*year;
double k = pow(1 + rate_1, year);
cleo = cleo*k;
temp = cleo - daphne;
}

cout << "after " << year << " years, cleo has more money than daphne! " << endl;
cout << "the money of daphne is: " << daphne << endl;
cout << "the money of cleo is: " << cleo << endl;
return 0;

}
求解答!!谢谢大神

4个回答

qq_34111510
qq_34111510   2016.04.23 16:25

没有等待键盘输入 所以闪退 ,运行了以后直接退出了 暂停一下咯 。最后加一行代码就可以了。

q610098308
q610098308   2016.04.23 17:35

return 0;
前添加

getchar();

这样不会直接退出,你点击键盘后才会退出控制台;
或者你可以调试模式运行,在return 0;前打断点,会自动运行到断点,停住。

sinat_31601333
sinat_31601333   2016.04.23 18:20

在return 0;前面加system("pause");让程序暂停。不然运行完直接就结束掉了

sinat_31601333
sinat_31601333 回复Kobe___Bryant:程序运行结束窗口就是要自动关掉的,没有加的话其实是编译器自动帮你加了,有些不帮你加的话就直接程序跑完就正常退出了啊没有必要暂停的,所以你如果想看结果的话要让它暂停在退出之前
一年多之前 回复
baidu_24736703
baidu_24736703 谢谢,解决了,我多次碰到这个问题,请问能解释一下原因吗??
一年多之前 回复
EmilyLi1114
EmilyLi1114   2016.11.05 13:12

一闪而过是程序自动结束,同时编译器没有提供结果驻留功能。对于此种情况,可以手动在代码结尾增加驻留功能的函数。常用的有如下两种:

1 通过getch函数驻留。
getch会等待从屏幕的输入,在main函数退出前,增加
getch();
调用,系统会等待输入,直到有新的输入,才会退出界面。

2 通过system("pause");来实现驻留。
在main退出前调用
system("pause");
会调用系统的pause函数,提示并实现按任意键退出程序效果。

如果是已经编译好的C语言程序,可以通过开始->运行,键入cmd后回车。
在打开的命令行窗口,将可执行文件拖动到窗口上,再回车即可运行该程序,在此窗口不会出现闪退,从而观察运行结果。

由于该问题仅在windows平台出现,所以以上介绍均针对windows平台。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!