采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
试验一下把 getline 从 assert 中拿掉,应该能解决你的问题。因为在 release 模式中,assert 被直接忽略了,所以在 release 中,getline 根本没有执行。
刨除 debug 模式下才能 debug(比如单步跟踪)这个区别,release 和 debug 最大的区别是对代码的优化。release 模式下编译器将对代码做更多优化(比如忽略掉 assert)。
确实,更标准的写法,不应该把核心逻辑放到 assert 中。比如这里的 assert(getline),应该写成:
if(!getline) throw
即,如果 getline 出错,抛出异常。
继续加油!:)
可以了,不过在其他地方的assert会继续报这个错误,我还是直接选debug运行吧,这部分知识后续再学,谢谢老师
point 是你想要运行的代码,不能放在 assert 中。你可能需要检查一遍所有的 assert 中的逻辑。
好的,谢谢老师
登录后可查看更多问答,登录/注册
课程专为:短时间内应对面试、升职测评等艰巨任务打造
8.7k 21
5.7k 3
4.8k 5
1.3k 18