为什么我运行程序后窗口一闪而过就没了

为什么会这样?原因简单到有点可笑:因为程序运行结束了
对于控制台程序,操作系统让它开始运行前会为它造一个控制台窗口,在它结束的时候为它销毁这个这窗口.所以,当程序的最后一条语句运行完后,没什么可做了,程序运行结束,窗口就没了
一般做法有这些:
     getchar()可以等待你输入一个字符,这样可以让程序等待在那
     system("pause")执行系统的pause命令,它也会等你
另外还有个特殊的:
       如果你是在IDE里编写完了程序,想要看运行结果,那你可以按Ctrl+F5来运行程序,那样即使你不使用上面的两条语句,也可以看见程序运行完后窗口没有消失  


       这是为什么呢?

       对于普通的做法,即按F5,IDE会直接启动编译成的exe,这和你双击一个exe启动它是等效的,而对于Ctrl+F5,IDE做的事有些不一样,它会去启动cmd.exe,也就是什么 命令提示符 那个程序,然后告诉它去运行编译好的程序.cmd.exe的行为是这样的,它启动其它程序时会把自己的这个控制台(它自己也是个控制台程序)借给这个程序使用,你的程序运行起来后就向这个控制台打印东西.等你的程序运行结束了,cmd.exe再得回控制权.注意,这时你的程序结束了,但cmd.exe还没有结束.而cmd.exe有个行为,就是会在它所启动的程序运行完后等待用户按个键.也就是你看见的"请按任意键继续..",或是"Press any key to continue..",显然,这行字并不是你的程序打印的
对于这点,你可以自己启动cmd.exe试试
       最后..虽然getchar和system("pause")效果看上去一样,但是..system("pause")是很浪费的,是大材小用.使用getchar()就行了.至于为什么这样,这里就不解释了




为什么VS中用CTRL+F5(执行不调试)没问题,但在wxDev-C++中用Run without Debugging怎么不行(就直接退出了)?
——只要是让编译出的程序脱离IDE的监护去运行,就称得上Run without debugging.所以"是不是with debugging"和"是不是会直接退出"是毫无关系的
只是在VS,它对Run without debugging的做法"恰巧"是让生成的程序运行在cmd.exe上,而cmd.exe正有那样的特性,所以..
而wxDev-c++也许(wxDev-c++我没有使用过)只是简单地让生成的程序运行起来,所以Run without debugging时看起来程序会直接退出(这并不妨碍它可以称作"Run without debugging")



你的程序是不是没有输入什么的,只是 一些 固定值的操作,因为计算机运行速度的关系...当然是一闪而过...

加 头文件 <stdlib.h> 
然后再 return 之前 加上 system("pause")//这是调用系统 操作,这句话是现实系统信息,这样的话,程序会在这条语句上运行 在DOS界面显示系统信息,达到了暂停的作用 ,按回车键 会 继续执行下一句话,如果加载最后就会
退出 程序了~
 
 
 
 
直接双击.exe文件窗口一闪而过这是正常的,因为它属MS-DOS应用程序,而非windows应用程序。要想让其停留,只要让程序陷入等待状态就行了,例如等待输入,在程序最后加一句
cin >> a;(a变量须申明)

或者还有方法是:
getchar()(); //等待输入回车再结束
因为你的运行窗口在程序一结束就关闭了,所以要加一个等待键,才能保证窗口不关闭




  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要解决VSCode程序运行一闪而过的问题,有两种方法可以尝试。 第一种方法是使用Code Runner插件。首先,在VSCode中安装Code Runner插件,然后点击"File"菜单下的"Preferences",选择"Settings"。在设置中,搜索"Code Runner: Run Code in Terminal"并勾选它。这样,当按下Ctrl + Alt + N时,程序将在终端中运行。 第二种方法是通过配置VSCode的调试设置来解决。首先,确保你的操作系统是Windows 64位,并且已经安装了C/C++环境。然后,在VSCode中安装相关插件。配置完成后,你可以使用F8键来运行和编译程序。 另外,还有一种方法是使用一个扩展,在两个"flags"字段中添加"-fexec-charset=gbk"参数。这个参数的作用是将多字节字符串常量保存为指定的编码(这里是gbk)。这样,即使源文件的编码是utf-8,也可以正常运行程序。 总结起来,要解决VSCode程序运行一闪而过的问题,你可以尝试安装Code Runner插件,并进行相应的设置,或者配置VSCode的调试设置,也可以使用扩展来添加参数以解决字符编码的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [完美解决 VsCode 一闪而过 闪屏 非语法 黑窗口 黑框 小黑窗 一闪而过 插件 F8运行编译](https://blog.csdn.net/weixin_49486457/article/details/124824688)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值