| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3583 人关注过本帖
标题:[求助]dev c++的运行窗口问题
只看楼主 加入收藏
lzmayy
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-7-25
收藏
 问题点数:0 回复次数:24 
[求助]dev c++的运行窗口问题

我们学校开可c++课程
比较浅显
我用dev c++编程序时候
在运行窗口输入变量时
一按回车运行窗口就关掉了
这个问题怎么解决?

搜索更多相关主题的帖子: dev 窗口 运行 变量 课程 
2006-07-25 17:16
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
你应该在mian()函数的尾部加上 system("PAUSE");

[此贴子已经被作者于2006-7-25 17:24:55编辑过]



c++/C + 汇编 = 天下无敌
2006-07-25 17:24
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
得分:0 
对了..关于这个问题我也想问下
我做过实验..用Dev c++的时候最后用system("pause")
西够函数并没有被调用!如果不用system("pause")
而是用cin.get();的话也同理

但是在VC环境下的话直接 return 0 就Okay了

想问下...如何在dev C++环境下 当程序结束时并且在已经定义西够函数用以
显示的情况下.如何看到西够函数显示的结果?

[此贴子已经被作者于2006-7-25 17:38:42编辑过]


2006-07-25 17:35
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
这个没有办法了,因为析够动作是退出main的时候才发动的,同理,static对象,变量等是最后才"解放",比普通对象还迟,因为他们是在main()函数入口前已经"构造"好了,或者占用内存了

c++/C + 汇编 = 天下无敌
2006-07-25 19:01
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
得分:0 
..只能用VC了

2006-07-25 19:18
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
nick_annie,

析构函数是当程序执行到 return 0; 的时候才被调用的, 也就是说, 你需要先敲一下回车, 那个 system("pause"); 才会被执行过去。 在 Dev 下面你会看不到析构程序的执行,但是析构程序确确实实是被执行的。 下面是一个democode, 以此来证明析构代码被执行了。 当析构代码执行以后, 你的project 的 目录下应该有了一个 test.txt 文件。

程序代码:

#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;

class Test
{
public:
Test()
{
cout<<\"make constructor\n\";
}
~Test()
{
ofstream fout(\"test.txt\");
fout<<\"make destructor\";
fout.close();
}
};

int main()
{
Test t;
system(\"pause\");
return 0;
}


需要说一下的是 Dev IDE 用的是 gcc 编译器, 所以大家可以对它放心了。 大家可以先找到 dev 编译器的目录, 一般为 C:\Dev-Cpp\bin, 将这个路径copy 到系统设置的路径中去, 这样你就可以在 console 界面下编译了, 对于C++ 程序编译的指令为 g++ filename.cpp, 生成的执行文件为 a.exe 执行时输入 a 就可以了。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-07-25 19:47
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
kai,你的测试办法真是好,看来我都要经常弄一下demcode,还有,我想请问一下,"执行到return 0;"的意思是执行完return 0吗???我想知道我自己的理解有没有错误

[此贴子已经被作者于2006-7-25 19:58:18编辑过]



c++/C + 汇编 = 天下无敌
2006-07-25 19:55
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
当执行 return 0; 的时候就去调用析构函数了。 当所有析构函数执行完毕, 程序返回0 给系统。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-07-25 19:58
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
以下是引用kai在2006-7-25 19:58:13的发言:
当执行 return 0; 的时候就去调用析构函数了。 当所有析构函数执行完毕, 程序返回0 给系统。

那如果没有renturn 0呢??是不是在main退出之前一定完成所有对象析构动作??包括static object??


c++/C + 汇编 = 天下无敌
2006-07-25 20:00
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
还有,这个有没有得通过验证确实是在return 0;的时候引起析构动作??

c++/C + 汇编 = 天下无敌
2006-07-25 20:01
快速回复:[求助]dev c++的运行窗口问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016901 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved