You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何阻止C++编译生成的exe程序运行结束后自动关闭?

解决EXE运行后立即关闭无法查看输出的问题

嘿,这个问题我太熟了!很多刚接触本地编译运行的朋友都会碰到这个情况——编译器里跑能看到输出,单独双击exe就闪一下没了,根本来不及看结果。下面给你几个实用的解决办法,随便挑一个都能搞定:

方法1:在代码末尾添加暂停逻辑

这是最直接的方式,让程序运行到最后时主动等待用户输入,不会立刻退出。

  • C/C++ 方案
    • 可以用Windows专属的系统暂停命令:
      #include <stdlib.h>  // C语言头文件
      // 或者 #include <cstdlib>  // C++语言头文件
      int main() {
          // 你的程序逻辑
          printf("Hello World!\n");
          
          system("pause");  // 执行后会显示"请按任意键继续..."
          return 0;
      }
      
    • 更通用的跨平台等待输入方式(避免系统依赖):
      #include <stdio.h>
      int main() {
          printf("Hello World!\n");
          
          // 先吃掉之前输入残留的换行符(如果程序里有输入操作的话)
          getchar();
          // 等待用户按下任意键再退出
          getchar();
          return 0;
      }
      
      C++里可以用cin.get()替代,同样要注意处理输入缓冲区的换行残留问题。

方法2:从命令提示符(CMD)手动运行EXE

这个方法不需要修改代码,适合不想改动程序的情况:

  • 按下Win + R,输入cmd回车打开命令提示符;
  • cd命令切换到你的EXE文件所在的文件夹,比如:
    cd C:\MyProjects\Demo\Release
    
  • 输入EXE的文件名(比如Demo.exe)回车运行,程序结束后窗口会保持打开,你可以随时查看输出内容。

方法3:用批处理文件(.bat)运行EXE

创建一个批处理文件,把运行EXE和暂停命令绑定在一起,双击批处理就能自动执行:

  1. 在EXE所在文件夹新建一个文本文件,打开后输入:
    @echo off
    Demo.exe  // 替换成你的EXE文件名
    pause
    
  2. 保存文件,把后缀名从.txt改成.bat
  3. 双击这个bat文件,程序运行结束后会自动暂停,显示"请按任意键继续..."。

方法4:修改编译器的运行配置(仅IDE内运行生效)

如果你主要在编译器里调试,偶尔才单独运行EXE,有些IDE可以设置运行后自动暂停:

  • 比如Code::Blocks:点击顶部菜单栏的设置->编译器->全局编译器设置->程序调试器,勾选运行后暂停选项;
  • 比如Visual Studio:默认在调试模式下运行时会自动暂停,但单独双击EXE还是会关闭,所以这个方法只能覆盖IDE内运行的场景。

内容的提问来源于stack exchange,提问作者Dorbek

火山引擎 最新活动