额在给大一学弟上第一节实验課的时候,经常有学弟问我,为什么打开c语言调试后闪退言生成的exe文件立马闪退。
起初个别问的时候我只是简单的说明程序运行完了,僦自动关了现在先不用涉及这个,以后自然懂了
但是后来问的人多了,我就觉得有必要先给他们提一下了
首先,生成的exe文件本质是控制台程序这些都是依赖于windows的控制台窗口,程序执行完就退出了(比如,如果你程序中有scanf语句那么打开exe的时候不会立马结束,而是等待你的输入等跑完程序,再自动关闭就是这个道理)
下面简单说几种常见的解决方法。
1.在代码段末尾加上getch();就可以了(代码段末尾指你程序要执行完之前, 一般在return 0;之前)或者加上getchar(); 也行。
原理就是停止等待用户输入,即你没输入的话程序就不算执行完毕。
个人认为getch();比較好因为你加getch();是按任意键退出,而getchar();你可以输入若干个字符然后按回车才会结束。
这里的system就是调用从程序中调用系统命令(和shell命令)
洏“pause”这个系统命令的功能很简单,就是在命令行上输出一行类似于“Press any key to exit”的字等待用户按一个键,然后返回还是同样的道理,等待用戶输入才能算执行完毕。
3.在exe文件同目录下新建一个txt文档里面输入如下内容
然后退出保存,把后缀txt改为bat然后运行那个xx就是文件的名字。
然后打开.bat文件运行程序(.bat文件命名随意)
这里的.bat文件是批处理文件(也被称为批处理程序或脚本)是无格式的文本文件,它包含一条或多條命令它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称操作系统就会按照该文件中各个命令出现的顺序来逐个运行它们。(使用批处理文件可以简化日常或重复性任务。)
这里执行了xx.exe这个程序并且调用了pause。 类似解决方案2.
方法当然不唯一这里简单介绍了3種。 希望对大家有所帮助
学习的路上,与君共勉。