C++学习之路之VS闪退的原因及常用解决方法(附原因)
2017-06-15 16:00
399 查看
首先,闪一下就消失是正常的。
因为程序语句一句句地执行,没有什么让它暂停下来,以计算机执行速度之快,当然一闪而过。
我们需要做的是让系统等待,暂停,这样就不会闪退(有的编译器会在代码最后自动加上这个功能,以防止新手看不到输出结果)。
解决方法及解释:
1)在return前加上system("pause");
注:system() 是调用系统命令;pause 暂停命令;这样在运行到此处时,其实就是“Press any key to continue . . .”
2)在return前加上getchar();
注:getchar作用是读取下一个字符,这样由于要等待我们输入,所以就“暂停了”。
值得注意的是有的时候可能需要添加两个getchar(),原因是可能是第一个getchar()吃掉了回车之类的。
3)按ctrl+F5运行
注:ctrl+F5是不进行调试,直接执行DEBUG生成的程序,会在最后面 自动“pause ”,所以DOS命令提示符就多一个"Press any key to continue . . .."
而我们点的那个小三角,是启动调试(F5),不会自动添加”pause“,所以就会一闪而过了。
以上只是我查阅资料思考后的想法,欢迎各位同道中人予以指正,在下将不胜感激!
因为程序语句一句句地执行,没有什么让它暂停下来,以计算机执行速度之快,当然一闪而过。
我们需要做的是让系统等待,暂停,这样就不会闪退(有的编译器会在代码最后自动加上这个功能,以防止新手看不到输出结果)。
解决方法及解释:
1)在return前加上system("pause");
注:system() 是调用系统命令;pause 暂停命令;这样在运行到此处时,其实就是“Press any key to continue . . .”
2)在return前加上getchar();
注:getchar作用是读取下一个字符,这样由于要等待我们输入,所以就“暂停了”。
值得注意的是有的时候可能需要添加两个getchar(),原因是可能是第一个getchar()吃掉了回车之类的。
3)按ctrl+F5运行
注:ctrl+F5是不进行调试,直接执行DEBUG生成的程序,会在最后面 自动“pause ”,所以DOS命令提示符就多一个"Press any key to continue . . .."
而我们点的那个小三角,是启动调试(F5),不会自动添加”pause“,所以就会一闪而过了。
以上只是我查阅资料思考后的想法,欢迎各位同道中人予以指正,在下将不胜感激!
相关文章推荐
- C++学习之路之VS闪退的原因及常用解决方法(附原因)
- Duanxx的C++学习: 使用类没有被定义 原因及解决方法
- vs2013 c++ 编程CString字符串查找替换后变乱码的原因及解决方法
- PHP学习之路之PHP文件上传需要考虑的问题以及解决方法($_FILES,$_SERVER,substr,strrpos,file_exists,move_uploaded_file,is_uploaded_file,mkdir)
- C++学习:Calc的赋值问题解决了,解决方法:先刷新控件值至相应变量
- VS调试时断点无法进入或命中的原因及解决方法(PDB引发的)
- 直接双击启动tomcat中的startup.bat闪退原因及解决方法
- VS调试_ASSERTE(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse));崩溃原因及解决方法 .
- 【学习ios之路:Objective-C】OC中常用的系统排序方法
- VS2013 C++ 项目占用空间较大的解决方法
- VS 生成下面的模块时,启用了优化或没有调试信息 原因及解决方法
- tomcat中的startup.bat闪退原因及解决方法 startup.bat修改
- [VS C++学习] Vs2005->vs2008 库冲突解决办法
- 引用原因.NET下编译C++代码时出现fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory错误的解决方法.
- (转)(VS2013 )由于应用程序配置不正确,程序未能启动”--原因及解决方法
- 【C++】变量定义在.h头文件导致 multiple definition of 的解决方法和根本原因
- C++ 学习 <三> :错误与解决方法
- VS2013下C++研发中多字节转换的解决方法
- 升级Win8.1或安装系统更新后导致VS无法打开工程(或未找到与约束。。)的原因和解决方法
- VS调试_ASSERTE(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse));崩溃原因及解决方法