找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 229|回复: 9

[求助]dev c++的运行窗口问题

[复制链接]
发表于 2009-11-3 03:54:50 | 显示全部楼层 |阅读模式 IP:江苏扬州
我们学校开可c++课程
比较浅显
我用dev c++编程序时候
在运行窗口输入变量时
一按回车运行窗口就关掉了
这个问题怎么解决?
发表于 2009-11-3 03:54:51 | 显示全部楼层 IP:江苏扬州
你应该在mian()函数的尾部加上 system("PAUSE");
回复

使用道具 举报

发表于 2009-11-3 03:54:52 | 显示全部楼层 IP:江苏扬州
对了..关于这个问题我也想问下
我做过实验..用Dev c++的时候最后用system("pause")
西够函数并没有被调用!如果不用system("pause")
而是用cin.get();的话也同理

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

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

使用道具 举报

发表于 2009-11-3 03:54:53 | 显示全部楼层 IP:江苏扬州
这个没有办法了,因为析够动作是退出main的时候才发动的,同理,static对象,变量等是最后才"解放",比普通对象还迟,因为他们是在main()函数入口前已经"构造"好了,或者占用内存了
回复

使用道具 举报

发表于 2009-11-3 03:54:54 | 显示全部楼层 IP:江苏扬州
..只能用VC了
回复

使用道具 举报

发表于 2009-11-3 03:54:55 | 显示全部楼层 IP:江苏扬州
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 就可以了。
回复

使用道具 举报

发表于 2009-11-3 03:54:56 | 显示全部楼层 IP:江苏扬州
kai,你的测试办法真是好,看来我都要经常弄一下demcode,还有,我想请问一下,"执行到return 0;"的意思是执行完return 0吗???我想知道我自己的理解有没有错误
回复

使用道具 举报

发表于 2009-11-3 03:54:57 | 显示全部楼层 IP:江苏扬州
当执行 return 0; 的时候就去调用析构函数了。 当所有析构函数执行完毕, 程序返回0 给系统。
回复

使用道具 举报

发表于 2009-11-3 03:54:58 | 显示全部楼层 IP:江苏扬州
以下是引用kai在2006-7-25 19:58:13的发言:
当执行 return 0; 的时候就去调用析构函数了。 当所有析构函数执行完毕, 程序返回0 给系统。

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

使用道具 举报

发表于 2009-11-3 03:55:00 | 显示全部楼层 IP:江苏扬州
还有,这个有没有得通过验证确实是在return 0;的时候引起析构动作??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 15:30 , Processed in 0.208671 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表