今天写学校OJ平台上的一道题,我遇到了让我无从debug的情况:我写完程序后编译运行,黑框框跳出来后我想输入数据,但是当我按着数字键时屏幕上却没有任何字符出现,自然程序也没有任何输出。我打算启动调试模式,我设置了断点以后,还是于事无补。程序运行到一个“点”就卡住了,点什么按键都不动,不能退出调试,也不能重新开始,只能关闭编辑器顺带关闭程序。实在没有头绪找bug,我只好把代码提交给OJ系统,OJ系统很快就报错了——输出超限。
我一时不理解这个词,经过一番查询,我知道可能是我的代码里的输出操作没有停止的边界导致的。我重新打开编辑器后再次运行程序,我发现这时输入又正常了!而且输入数据之后程序开始疯狂输出:
最后程序返回的是这样的数:
我终于彻底明白了“输出超限”含义。随后我分析到程序中涉及的输出操作的停止边界是一个需要及时更新的类内成员变量,而不幸的是它被我遗漏了。这下好了,问题解决了,增加了它的赋值代码后再运行,程序果然正常执行,提交到OJ系统上也通过了。
总结:
遇到程序不能正常输入或输出的情况,要检查程序设置的输入或输出的操作的边界是否正常。
遇到调试模式下程序卡崩的情况,很有可能是程序过度使用系统资源导致。
相关文章
- C++之输出超限的解决
- 前端开发之Element树结构组件el-input的type=“password“时候账号密码自动填充解决方案-前言
- 论文排版之插入图表目录,交叉引用, 出现图0.1的解决方法
- VB/VC混编调试之——VS调试VB6程序,解决VB6的IDE缺陷
- 关于oracle sql developer使用dbms_output.put_line无法显示输出结果的解决办法
- 【转】Endnote中英文混排及输出作者全名的解决办法
- 解决J-Link RTT Viewer不能自动打印输出的问题
- html2canvas生成的图片数据太大传不到后台之解决方法————js转成文件传给后台
- 解决VS默认用GBK编码导致输出中文乱码的问题
- Linux笔记之制作基于ubuntu20.4的最小OpenGL C++开发docker镜像