今天通过一个简单的程序来尝试在qt平台上进行代码调试,程序的主要内容为依次输入一个整型数字,一个字符型运算符和另一个整型数字,对它们执行相应的操作。
主函数内容如下:
int main()
{
int num1,num2;//需要进行操作的两个数字
char op;//运算符
cout<<"Enter the first number, option and second number: ";
//输入需要的数字和运算符
cin>>num1;
cin>>op;
cin>>num2;
cout<<oper(num1,op,num2);
return 0;
}
函数oper的内容如下,现在是没有错误的代码:
double oper(int num1,char op,int num2)
{
if(op=='+')
return (num1+num2);
else if(op=='-')
return (num1-num2);
else if(op=='*')
return (num1*num2);
else if(op=='/'&&num2!=0)
return (num1/num2);
else
return -1;
}
现在我们进行操作:
快捷键F9或者在调试处点击切换断点即可进入调试模式,这里我将断点设置在提示输入行,
快捷键F5或者点击调试进行调试,此时控制台没有消息
点击下方的单步进入
此时控制台显示提示行
每个变量此时还没有值
依次进行单步进入操作,输入数字和字符,注意输入数字或者字符之后需要回车才能进行下一步操作,否则不能单步进入
输入完成后变量对应的值就显示出来了
继续单步进入就进入到函数体中,直到找到相对应的操作符
进行执行单步进入操作就在控制台得到结果
现在将函数改变
double oper(int num1,char op,int num2)
{
if(op=='+')
return (num1+num2);
else if(op=='-')
return (num1-num2);
else if(op=='*')
return (num1*num2);
else if(op=='/')
return (num1/num2);
else
return -1;
}
将输入的第二个数变为零,直接运行程序并不能得到结果
现在开始调试寻找原因,同以上操作进行单步调试,直到进入函数体
当运行到两个数进行运算时
进行下一步就会显示提示,运算错误
我们很容易知道是除数时不能为零,这里没有考虑,从而我们找到了问题的位置,更改代码就可以输出结果。