【问题解决】VS2019解决编译生成的exe文件打不开的情况

问题描述

本人是某计算机专业大学生,近期在用VS做大作业的时候,突然发现使用Release模式编译下的exe文件双击闪退。我在网上查了各种方法,也修改了相应的设置,但是仍然不管用。

解决方法

后来猛然想起自己的大作业使用了ifstream进行文件读入,待读取的txt与cpp文件放在了同一目录下,因此使用了相对地址!也正是因为如此,所以在VS调试的时候并没有报错,而自己在代码中又没有对文件打开失败进行报错提示,导致浪费很多时间。真是吐了都。
修改办法为:将待读取文件和exe文件放在同一文件夹下即可。

总结

如果你写的C++程序编译生成的exe文件打不开,可以有以下解决办法:
1.在main函数return 0前加上system(“pause”)(理论上需要<Windows.h>头文件,但VS2019貌似不需要)
2.修改相应设置(这个网上很多,不做赘述,其实我自己也没记住太多改法
3.考虑有没有可能是程序运行错误导致的闪退。例如上例,文件读入失败会直接退出程序。
此外,如果你使用ifstream进行文件读入,强烈建议判断文件是否成功打开,我的习惯写法是:

	const char* path="in.txt";
	ifstream In(path);
	if(In.is_open()){
		...//你的操作
	}
	else{
		cerr<<"文件打开失败!"<<endl;
		exit(-1);
	}
	In.close();

对于动态内存的申请,也可以参考上述写法。或者使用高级的try-catch写法。(但是我太菜了我不会
希望以后自己能多思考多注意细节吧,也希望各位少踩类似的坑。

  • 16
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值