C++编译笔记—VS运行成功的exe为何闪退以及怎么直接调用;
首先我们要明白生成的exe文件本质是控制台程序,这些都是依赖于windows的控制台窗口,程序执行完就退出了。(比如,如果你程序中有scanf语句,那么打开exe的时候不会立马结束,而是等待你的输入,等跑完程序,再自动关闭,就是这个道理)
下面介绍几种常用解决办法
第一种:加个头文件windows.h
,然后在代码段末尾加个 system(“pause”)
;
这里的system就是调用从程序中调用系统命令(和shell命令)。
system(“pause”)
就是从程序里调用“pause”
命令;
而“pause”
这个系统命令的功能很简单,就是在命令行上输出一行类似于“Press any key to exit”
的字,等待用户按一个键,然后返回。还是同样的道理,等待用户输入,才能算执行完毕。
第二种:
在exe
文件同目录下新建一个txt
文档,里面输入如下内容
xx.exe
pause
然后退出保存,把后缀txt
改为bat
然后运行,那个xx
就是文件的名字。
然后打开.bat
文件运行程序。(.bat
文件命名随意)
这里的.bat
文件是批处理文件(也被称为批处理程序或脚本)是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat
或 .cmd
。在命令提示下键入批处理文件的名称,操作系统就会按照该文件中各个命令出现的顺序来逐个运行它们。(使用批处理文件,可以简化日常或重复性任务。)
这里执行了xx.exe
这个程序,并且调用了pause
。 类似法1
第三种:
用getch();
文首添加#include <conio.h>
在代码段末尾加上getch();
就可以了
方法当然并不唯一,希望对你有所帮助
第四种:
将exe文件和所需要读取的文件放在同一个文件夹下,然后在运行,可能还是会闪退,解决方法可以参考以下
输入cmd,敲回车,该方法可以用来排错,辅助为何打不开和闪退,个人觉得很好用
在该路径下,输入exe文件名,然后敲回车,成功运行,如果出现找不到某某文件,但文件以及存在,那么这依然还是路径问题,就相对于exe新建文件夹命名为你所需要的文件夹名称,将所需文件放到该文件夹下,这样即可访问成功。
blog.csdnimg.cn/d452d8f849b145a4a9f326149ed7fee8.png)
为何将exe分享给别人,别人打不开,那是因为读取文件的路径不一致,没有配置相应的环境,一般要对方的电脑重新生成exe才能使用.