1. 程式人生 > >Dev-C++單步除錯方法

Dev-C++單步除錯方法

前言

最近在看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輸入流,而不至於丟失。