首页 > 其他 > 详细

code::Block单步调试中的一个问题

时间:2014-03-23 11:02:07      阅读:452      评论:0      收藏:0      [点我收藏+]

zhixing909090给我来信说Code::Block中单步执行时的问题,我让他/她发来程序。

程序是:

#include <iostream>
using namespace std;
int main( )
{
    double r1,r2,r; //定义变量,用来表示待串联的电阻值及并联后的电阻值
    cout<<"请输入两个电阻的阻值:"; //输出字符串,作为对“用户”的提示
    cin>>r1>>r2; //由用户输入待串联的电阻值
    r=r1+r2; //实现计算,将r1+r2的结果赋值给r
    cout<<"串联后的阻值为:"<<r<<endl; //输出计算结果
    return 0;
}
他/她说:“老师就是你的那个程序!单步调试,若定义int能通过,但是double通不过!到cin>>死活输不出来!我试了好多遍!我用的是code13.12最新版本!”


我调试,果然如此。但无法解释。如何答复?不能我也不知道。

下面是我的答复。
  我试过了,确实如你所言。这是否是Code::Block的一个Bug,我不敢肯定,可以通过邮件反馈一下。
  不过,我们可以绕开这样的问题,原则就是不要进入到这个陷阱中去。我提示两个方法:(1)替换:调试中,给变量直接赋值,如你的程序中,将cin>>r1>>r2加上注释,同时写对r1和r2的赋值语句,单步执行能够顺利过去;(2)忽视:通过加断点,跳过cin,而不是机械地一步一步操作。要搞清目标是跟踪过程,而保证输入没有问题,cin完全用不着去step。实际上,即使没有bug,也要适应利用断点,这是一个可以高效的方式。
  我解释不了这段错误,就给你提点“避障”的办法,供参考。科学问题,一定要追根问底,而对这类工程中遇见的问题,首要的原则,让事情能做下去。


  顺便提code::Block中的另一个问题:当项目所在文件名夹中含有中文、空格时,单步高度无法进行。对策:养成习惯,建文件夹时,按字线开头、数字字母串的一般规范去命名。


  存在问题不怕,重要的是找到应对的原则,也是一种选择。

code::Block单步调试中的一个问题,布布扣,bubuko.com

code::Block单步调试中的一个问题

原文:http://blog.csdn.net/sxhelijian/article/details/21858093

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!