为什么我用vc++6.0编出的exe文件只能在集成环境中运行,用电脑直接打开会闪退?

 我来答
茅厕别
2017-07-21 · TA获得超过131个赞
知道答主
回答量:181
采纳率:0%
帮助的人:64.5万
展开全部
转自某网: 首先,生成的exe文件本质是控制台程序,这些都是依赖于windows的控制台窗口,程序执行完就退出了。(比如,如果你程序中有scanf语句,那么打开exe的时候不会立马结束,而是等待你的输入,等跑完程序,再自动关闭,就是这个道理)

下面简单说几种常见的解决方法。

1.在代码段末尾加上getch();就可以了。(代码段末尾指你程序要执行完之前, 一般在return 0;之前)或者,加上getchar(); 也行。

原理就是停止,等待用户输入,即你没输入的话,程序就不算执行完毕。

个人认为getch();比较好。因为你加getch();是按任意键退出,而getchar();,你可以输入若干个字符然后按回车才会结束。

2.加个头文件windows.h,然后在代码段末尾加个 system(“pause”);

这里的system就是调用从程序中调用系统命令(和shell命令)。

system(“pause”)就是从程序里调用“pause”命令;
而“pause”这个系统命令的功能很简单,就是在命令行上输出一行类似于“Press any key to exit”的字,等待用户按一个键,然后返回。还是同样的道理,等待用户输入,才能算执行完毕。

3.在exe文件同目录下新建一个txt文档,里面输入如下内容
xx.exe
pause
然后退出保存,把后缀txt改为bat然后运行,那个xx就是文件的名字。

然后打开.bat文件运行程序。(.bat文件命名随意)

这里的.bat文件是批处理文件(也被称为批处理程序或脚本)是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,操作系统就会按照该文件中各个命令出现的顺序来逐个运行它们。(使用批处理文件,可以简化日常或重复性任务。)

这里执行了xx.exe这个程序,并且调用了pause。 类似解决方案2.
heptnaol
2017-07-21 · TA获得超过7263个赞
知道大有可为答主
回答量:7120
采纳率:78%
帮助的人:1828万
展开全部
也不是闪退,就是瞬间执行完了就结束了。你可以开始,运行cmd,然后cd到那个目录里,再输入那个xxx.exe,就不会闪退了。
集成环境运行,是要回车一下才能结束的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式