Dev-C++單步除錯方法
阿新 • • 發佈:2019-01-10
前言
最近在看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輸入流,而不至於丟失。