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

  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单步调试中的一个问题_第1张图片 china-pub(正在发售)
卓越网(接受预订) 
图灵社区  官方试读本下载
豆瓣
==================== 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章分类目录(不定期更新)  ==|
|== C++ 课堂在线专栏  贺利坚课程教学链接(分课程年级) ==|
===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =====

  
    







你可能感兴趣的:(code::Block单步调试中的一个问题)