版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38371360/article/details/85641970
前言
最近在看FishC大佬的C++教程,遇到一堆问题,慢慢写吧。
如何使用Dev-C++软件调试
调试程序如下:
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i;
int sum = 0;
char ch;
printf("请输入一串整数和任意数目的空格: ");
while( scanf("%d", &i) == 1 ) //stdlib中的scanf用来接收,如果接收正常,返回值为1
{
sum += i;
while( (ch=getchar()) == ' ' )// 如果截取到空格,while语句不执行任何操作 即为屏蔽空格
;
if( ch == '\n' ) //如果接收到空格则跳出循环
{
break;
}
//ungetc( ch, stdin );//将变量ch中存放的字符退回给stdin输入流。
/*
如果注释掉上面这行,程序输出将会错误,比如输入22,33,33,44时正确答案应该是132,但实际只得到了32.
为什么呢?因为只进行了计算22,3,3,4共32,而其将第一个3,第一个4都丢弃掉了.
*/
}
printf("结果是: %d", sum);
printf("\n");
system("pause");
}
Dev-C++软件版本:v5.11
在调试上述程序的时候,
第一步-添加断点
添加断点,即单机左侧,整行代码变红即为已经添加成功。
第二步-添加变量
添加一个你需要观察的变量,选中这个变量,右击选择“添加查看”即可
第三步-调试运行
点击调试按钮
跳出命令行窗口
按下回车键即可。
第四步-单步调试
此时点击下一步按钮,进行单步调试,
可以看到左侧调试框中出现了之前设置的观察变量的值。
此时可以观察到变量i的变化情况,12, 4,6,8加起来刚好是30。所以需要添加一行代码
ungetc( ch, stdin );
用处是将变量ch中存放的字符再退回给stdin输入流,而不至于丢失。