共用方式為


在 C++ 中建立主控台計算機

C++程序設計人員的一般起點是命令行上執行的 “Hello, world!” 應用程式。 您從本文開始,然後移至更具挑戰性的內容:計算機應用程式。

先決條件

  • 您的電腦上需要安裝並運行 Visual Studio,並包含 使用 C++ 的桌面開發 工作負載。 若要安裝,請參閱 在 Visual Studio 中安裝C++支援
  • 本教學課程示範一項稱為編輯並繼續的功能,可讓您在執行應用程式時變更程序代碼。 若要啟用編輯並繼續,請從主功能表中選取 [工具>選項>>偵錯一般],並確定已核取 [要求原始程序檔完全符合原始版本]。

建立您的應用程式專案

Visual Studio 會使用 專案 來組織應用程式的程式代碼,以及組織一或多個項目 的解決方案 。 專案包含用來建置應用程式的所有選項、組態和規則。 它也會管理所有項目檔案與任何外部檔案之間的關聯性。 若要建立您的應用程式,請先建立新的專案和方案。

  1. 啟動 Visual Studio--[Visual Studio 開始] 對話框隨即出現。 選取 [建立新專案 ] 以開始使用。

    Visual Studio 2022 啟動時出現的對話框螢幕快照。

    對話框有複製存放庫、開啟專案或方案、開啟本機資料夾,以及建立新項目的選項。

  2. 在 [ 建立新專案 ] 對話框中,將語言下拉式清單設定為 [C++],將平臺下拉式清單設定為 [Windows],從專案類型清單中選取 [控制台應用程式 ],然後選取 [ 下一步]。

    Visual Studio [建立新專案] 對話框的螢幕快照。

    語言下拉式清單會設定為 C++,平臺下拉式清單會設定為 Windows,而 [空白專案]、[控制台應用程式]、[CMake 專案]、[Windows 桌面精靈] 等專案類型會顯示在專案類型清單中。

    這很重要

    請務必選取 主控台應用程式 範本C++版本。 它有 C++Windows控制台 標籤,而且圖示在角落中有 “++”。

  3. 在 [ 設定新專案 ] 對話框中,選取 [ 項目名稱] 文本框,將新的專案命名 為 CalculatorTutorial,然後選取 [ 建立]。

    Visual Studio [設定新專案] 對話框的螢幕快照。它有專案名稱、專案位置和方案名稱的欄位。

    已建立空的 C++ Windows 控制台應用程式 "Hello World"。 主控台應用程式會使用 Windows 主控台視窗來顯示輸出並接受使用者輸入。 在 Visual Studio 中,編輯器視窗隨即開啟,並顯示產生的程式代碼:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    
    int main()
    {
        std::cout << "Hello World!\n";
    }
    
    // Run program: Ctrl + F5 or Debug > Start Without Debugging menu
    // Debug program: F5 or Debug > Start Debugging menu
    
    // Tips for Getting Started:
    //   1. Use the Solution Explorer window to add/manage files
    //   2. Use the Team Explorer window to connect to source control
    //   3. Use the Output window to see build output and other messages
    //   4. Use the Error List window to view errors
    //   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
    //   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
    

確認新的應用程式建置並執行

新 Windows 控制台應用程式的範本會建立簡單的C++ “Hello World” 應用程式。 此時,您可以看到 Visual Studio 如何建置和執行您直接從 IDE 建立的應用程式。

  1. 若要建置專案,請從 [建置] 功能表中選取 [建置方案]。 [輸出] 視窗會顯示建置程序的結果。

    Visual Studio [輸出] 視窗的螢幕快照。它會顯示建置成功訊息。

  2. 若要執行程式代碼,請在功能表欄中選取偵錯>不偵錯執行(Ctrl+F5)。

    Visual Studio 偵錯控制台的螢幕快照,其中顯示應用程式的輸出:Hello World!

    主控台視窗隨即開啟,您的應用程式會在其中執行。

    當您在 Visual Studio 中啟動主控台應用程式時,它會執行程式碼,然後列印「按任意鍵關閉此視窗 。 . 。“ 可讓您有機會查看輸出。

    祝賀! 您已在 Visual Studio 中建立第一個 “Hello, world!” 控制台應用程式!

  3. 按下按鍵以關閉主控台視窗並返回Visual Studio。

您現在有工具可在每次變更之後建置並執行您的應用程式,以確認程式代碼仍如預期般運作。 稍後,我們會示範如何偵錯它,如果它無法運作。

編輯程序代碼

現在,讓我們將此範本中的程式碼修改為計算機應用程式。

  1. 將檔案的內容 CalculatorTutorial.cpp 取代為下列程序代碼,使其符合此範例:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b"
            << endl;
        return 0;
    }
    
    // Run program: Ctrl + F5 or Debug > Start Without Debugging menu
    // Debug program: F5 or Debug > Start Debugging menu
    // Tips for Getting Started:
    //   1. Use the Solution Explorer window to add/manage files
    //   2. Use the Team Explorer window to connect to source control
    //   3. Use the Output window to see build output and other messages
    //   4. Use the Error List window to view errors
    //   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
    //   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
    

    瞭解程式代碼:

    • #include 語句會將其他檔案中的程式代碼引入。 有時候,您可能會看到以角括弧括住的檔名,例如 <iostream>。 角括弧會指示編譯程式先在標準系統目錄中尋找 iostream 標頭檔,如果找不到,則尋找專案特定的目錄。 其他時候,您可能會看到檔名周圍有引號,例如 "someHeader.h"。 引號會指示編譯程式略過在標準系統目錄中尋找,而只會查看專案特定的目錄。
    • using namespace std;會指示編譯程式預期C++標準連結庫的程式代碼會用於這個檔案中。 如果沒有這一行,連結庫中的每個關鍵詞必須前面加上 std:: ,才能表示其範圍。 例如,如果沒有該行,每個對cout的參考都會寫成std::cout。 新增了 using 語句,以便更方便存取另一個命名空間中的程式碼。
    • 關鍵詞 cout 用於在 C++ 中列印到標準輸出。 運算子 << 會指示編譯程式將其右側的任何內容傳送至標準輸出。
    • 關鍵詞 endl 就像 Enter 鍵;它會結束這一行,並將游標移至下一行。 最好是將 \n 放在包含 "" 的字串內,以便執行相同的動作,因為 endl 總是會清空緩衝區,這可能會影響程式的效能。 由於這是一個非常小的應用程式,因此改用endl來替代。
    • 所有C++語句都必須以分號結尾,而且所有C++應用程式都必須包含函 main() 式。 此函式是程式在啟動時執行的內容。 所有程式代碼都必須可從 main() 存取,才能使用。
  2. 若要儲存盤案,請按 Ctrl+S,或選取功能表欄下方工具列中的磁碟片圖示。

  3. 若要執行應用程式,請按 Ctrl+F5 或移至 [ 錯] 功能表,然後選取 [ 啟動但不偵錯]。 您應該會看到看起來如下的控制台視窗。

  4. 當您完成時,請關閉主控台視窗。

新增程式代碼以執行一些數學運算

類別就像是物件執行某些動作的藍圖。 在此情況下,我們會定義計算機類別來包含數學邏輯。

新增 Calculator 類別

  1. 移至 [專案] 功能表,然後選取 [ 新增類別]。 在 [ 類別名稱] 編輯方塊中,輸入 計算機。 請選擇 [確定]

    Visual Studio [新增類別] 對話框的螢幕快照。

    類別名稱欄位包含文字計算機。 .h 檔案欄位包含 Calculator.h。 .cpp檔案欄位包含Calculator.cpp。 基類欄位是空的。 內嵌和Managed的選項未被勾選。

    兩個新檔案會新增至您的專案。 若要一次儲存所有已變更的檔案,請按 Ctrl+Shift+S。 這是 [全部儲存盤>] 的鍵盤快捷方式。 另外還有 [ 全部儲存] 工具列按鈕,這是兩個磁碟片的圖示,位於 [儲存 ] 按鈕旁邊 。 一般而言,最好經常執行 [全部儲存 ],因此您不會錯過儲存任何變更。

    [新增類別精靈] 會.h建立 與 類別同名的檔案.cpp。 您可以在 [ 方案 總管] 視窗中看到項目檔的完整清單,顯示在 IDE 側邊。 如果視窗不見,請在功能表列透過 [ 檢視>方案總管 ] 開啟它。

    Visual Studio [方案總管] 視窗的螢幕快照。

    計算機教學課程專案具有頭文件節點,其中包含 Calculator.h。 "一個 [來源檔案] 節點包含 Calculator.cpp 和 CalculatorTutorial.cpp。" 參考、外部相依性和資源文件的節點可看見,但已關閉。

    您可以在 [方案總管] 視窗中按兩下滑鼠開啟檔案。 按兩下 Calculator.h 以開啟它。

  2. 將 的內容 Calculator.h 取代為下列程式代碼,讓檔案現在看起來像這樣:

    #pragma once
    class Calculator
    {
    public:
        double Calculate(double x, char oper, double y);
    };
    

    了解程式碼

    • 此程式代碼會宣告名為 Calculate的新函式,其會處理加法、減法、乘法和除法的數學運算。
    • C++程式代碼會組織成 標頭.h) 檔案和 來源.cpp) 檔案。 多種編譯器可支援其他副檔名,但這些是主要需要了解的。 函式和變數通常會 宣告,也就是在頭檔中指定名稱和類型,並在原始程式檔中 作或指定定義。 若要存取另一個檔案中定義的程式代碼,您可以使用 #include "filename.h",其中 filename.h 是宣告您要使用的變數或函式的檔名。
    • 最好根據程式代碼的功能將程式代碼組織成不同的檔案,以便您稍後輕鬆找到所需的程序代碼。 在我們的案例中,我們會將 類別與包含 函式的Calculator檔案分開定義main(),但我們計劃參考 Calculator 中的main()類別。
  3. 綠色波浪線會出現在Calculate,因為Calculate函式雖然已宣告,但並未定義。 將滑鼠停留在Calculate,按一下螺絲起子圖示上的向下箭號,然後選取在Calculator.cpp中建立「Calculate」定義。

    Visual Studio 編輯器視窗中螺絲起子下拉式清單的螢幕快照。醒目提示 [在 Calculator.cpp 中建立計算的定義] 選項。

    此程式代碼會新增至 Calculator.cpp

    Visual Studio 編輯器的螢幕快照,其中顯示 『Calculate』 函式的定義。

    函式的定義是:double Calculator::Calculate( double x, char oper, double y) { return 0.0; }

    目前,它只會傳回 0.0。 讓我們改變這點。

  4. 切換至 Calculator.cpp 編輯器視窗中的檔案。 將的內容 Calculator::Calculate(double x, char oper, double y) 取代為:

    double Calculator::Calculate(double x, char oper, double y)
    {
        switch(oper)
        {
            case '+':
                return x + y;
            case '-':
                return x - y;
            case '*':
                return x * y;
            case '/':
                return x / y;
            default:
                return 0.0;
        }
    }
    

    了解程式碼

    • 函式 Calculate 接受數位、運算符和第二個數位。 然後,它會在兩個數字上執行要求的作業。
    • 語句 switch 會檢查提供的運算子,並執行與該運算對應的情況。 此 default: 情境是一個備用方案,用於當使用者輸入任何上述 case 語句未處理的運算符時進行處理。 最好以更簡潔的方式處理無效的使用者輸入,但這已超出本教學課程的範圍。
    • 關鍵詞 double 表示支援小數的數字類型。 這種類型的數位稱為浮點數,表示 double 具有額外精確度的浮點數。 如此一來,計算機就可以處理十進位數學和整數數學。 函 Calculate 式必須一律傳回雙精確度浮點數,因為程式代碼開頭的 double (這表示函式的傳回型別),這就是為什麼我們在預設案例中傳回0.0的原因。
    • 檔案 .h 會宣告函式 原型,其會事先告知編譯程式需要哪些參數,以及預期其傳回類型。 檔案 .cpp 具有函式的所有實作詳細數據。

如果您此時再次建置並執行程序代碼,它會在要求執行哪個作業之後立即結束。 因此,修改函 main 式以執行多個計算。

Calculator呼叫類別成員函式

  1. 更新 main 函式中的 CalculatorTutorial.cpp,如下所示:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    #include "Calculator.h"
    
    using namespace std;
    
    int main()
    {
        double x = 0.0;
        double y = 0.0;
        double result = 0.0;
        char oper = '+';
    
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b"
             << endl;
    
        Calculator c;
        while (true)
        {
            cin >> x >> oper >> y;
            result = c.Calculate(x, oper, y);
            cout << "Result " << "of " << x << oper << y << " is: " << result << endl;
        }
    
        return 0;
    }
    

    了解程式碼

    • 由於C++程式一律從 main() 函式開始,因此我們需要從該處呼叫其他程序代碼,因此需要語句 #include ,才能讓函 main() 式看到該程序代碼。
    • 變數 xyoperresult 會分別宣告為儲存第一個數位、第二個數位、運算元和最終結果。 最好給他們一些初始值,以避免未定義的行為,這就是這裡完成的工作。
    • Calculator c; 行會將名為 c 的物件宣告為 類別的 Calculator 實例。 類別本身只是計算機運作方式的藍圖;對象是執行數學運算的特定計算機。
    • 語句 while (true) 是迴圈。 只要內部的條件 () 為 true,迴圈內的程式代碼就會重複執行。 由於條件只是列為 true,因此一律為 true,因此循環會永遠執行。 若要關閉程式,用戶必須手動關閉控制台視窗。 否則,程式一律會等候新的輸入。
    • 關鍵詞 cin 接受來自用戶的輸入。 輸入數據流足夠聰明,可以處理主控台視窗中輸入的一行文字,並依序放在列出的每個變數內。
    • 表達式 c.Calculate(x, oper, y); 會呼叫 Calculate 稍早定義的函式,並提供輸入值和要求的作業。 然後,函式會傳回儲存在 中的 result數位。
    • 最後, result 會列印到主控台,而使用者會看到計算的結果。

再次建置並測試程序代碼

現在再次測試程式,以確保一切正常運作。

  1. Ctrl+F5 重建並啟動應用程式。

  2. 輸入 5+5,然後按 Enter。 確認結果為 10。

    命令視窗的螢幕快照,其中顯示執行程序的結果。

    應用程式輸出訊息:請輸入要執行的作業。 格式:a+b |a-b |a*b |a/b. 用戶輸入 5+5。 應用程式輸出:5+5 的結果是:10

  3. 關閉主控台視窗以停止程式。

對應用程式進行偵錯

由於使用者可以在主控台視窗中輸入任何內容,因此讓我們確保程式可以處理非預期的輸入。 讓我們不要執行程式,而是進行偵錯,以便我們可以檢查其執行逐步執行的內容。

在調試程式中執行應用程式

  1. CalcuatorTutorial.cpp中,在行上設定斷點: result = c.Calculate(x, oper, y);。 若要設定斷點,請按兩下編輯器視窗左邊緣灰色垂直線旁的線條,讓紅點出現。

    Visual Studio 編輯器的螢幕快照。代表斷點的紅點會出現在行上:result = c.Calculate(x, oper, y)。

    現在當我們偵錯程式時,執行會暫停在該行。 我們已經有一個粗略的想法,程式適用於簡單的案例。 由於我們不想在每次呼叫 Calculate()時暫停執行,因此讓我們設定斷點條件。

  2. 以滑鼠右鍵按兩下代表斷點的紅點,然後選取 [ 條件]。 在條件編輯方塊中, 輸入 (y == 0) && (oper == '/')。 選取 [ 關閉 ] 按鈕以儲存斷點條件。

    設定斷點的螢幕快照

    斷點位於行上:result = c dot Calculate (x, oper, y)。 '條件...' [條件] 選項已勾選。 [條件] 下拉式清單會設定為 [條件運算式]。 條件下拉式清單會設定為 「Is true」。 條件設定為 y == 0 && oper == '/'。

    現在,當應用程式嘗試除以 0 時,執行會在斷點暫停。

  3. 若要偵錯程式,請按 F5,或選取具有綠色箭號圖示的本機 Windows 調試程式調試程式 工具列按鈕。 在主控台應用程式中,如果您輸入類似 「5 - 0」 的內容,則程式會正常運作並持續執行。 不過,如果您輸入 「10 / 0」,它會在斷點暫停。 您可以在運算符和數字之間放置任意數目的空格: cin 足夠聰明,可以適當地剖析輸入。

    Visual Studio 編輯器的螢幕快照。程式執行在條件斷點的行上停止:result = c.Calculate(x、oper、y)。

調試程式中有用的視窗

當您對程式代碼進行偵錯時,您可能會注意到會出現一些新的視窗。 這些視窗可協助您的偵錯體驗。 查看 Autos 視窗。 [ 自動變數] 視窗會顯示目前至少使用三行的變數值,且最多是目前這一行。 如果您沒有看到 [自動變數] 視窗,請從主功能表選取 [>錯Windows>Autos]。

Visual Studio 調試程式 [自動變數] 視窗的螢幕快照。

oper 的值是 47 '/',結果為 5、x 為 10,而 y 為 0。

若要查看該函式中的所有變數,請切換至 [ 局部變數 ] 視窗。 因為這是小型函式,[自動變數] 和 [局部變數] 視窗會顯示相同的變數。 但是,您可以在 [局部變數] 視窗中修改這些變數的值,同時偵錯以查看它們對程序的影響。 在此案例中,我們會讓他們獨自離開。 選取 [局部變數] 視窗底部的 [自動變數],或從 [主功能表] 中選取 [偵錯][>][局部變數],以開啟 [>] 視窗。

Visual Studio 中 [局部變數] 視窗的螢幕快照,其中顯示偵錯時局部變數的目前值。

oper 的值是 47 '/',結果為 0、x 為 10,而 y 為 0。

您也可以將滑鼠停留在程式碼中的變數上方,以查看其目前執行暫停時的值。 請先按下編輯器視窗,以確定編輯器視窗處於焦點中。

工具提示的螢幕快照,其中顯示變數 『oper』 的值,也就是 47 或 『/』。

繼續偵錯

  1. 左邊的黃色箭號會顯示目前的執行點。 目前的行會呼叫 Calculate,因此請按 F11 鍵以 單步執行 函式。 現在,您正在函式主體 Calculate 中執行程序代碼。 請小心使用 執行進入, 因為它會進入您所在行的任何函式,包括標準庫函式。 您可以進入標準程式庫,但相較於程式庫的程式碼,您可能更有興趣專注於您自己的程式碼。

  2. 現在執行點是在函式的 Calculate 開頭,請按 F10 移至程式執行中的下一行。 F10 也稱為 「步過」。 您可以使用 [逐步執行 ] 從行移至行,而不深入探討該行中每個部分所發生之專案的詳細數據。 一般而言,您應該使用 「略過」,而不是 「單步進入」,除非您想要更深入地查看從其他地方呼叫的程式代碼(就像您要查看 Calculate 的主體一樣)。

  3. 繼續使用 F10逐步執行 每一行,直到返回到另一個檔案的 main() 函式,並在 cout 行停止。

    程式正在執行預期的工作:它會採用第一個數位,並將它除以第二個數位。 在cout行上,將滑鼠停留在result變數上,或在 [result] 視窗中查看。 其值為 inf,看起來不對。

    偵錯計算機的螢幕快照。

    調試程式中目前的語句是 cout << “Result is: ” << result << endl;在 [自動變數] 視窗中,結果為 inf。

    讓我們修正此問題。 此 cout 行會輸出儲存在 中 result的任何值,因此當您使用 F10 再向前執行一行時,控制台視窗會顯示:

    Visual Studio 偵錯控制台的螢幕快照,其中顯示零除法的結果。

    應用程式輸出:請輸入要執行的作業。 格式:a+b |a-b |a*b |a/b. 用戶輸入了 5-0。 應用程式輸出:結果為:5。 用戶輸入 10/0。 應用程式輸出:結果為:inf

    此結果是因為除以零是未定義的,所以程式無法提供所要求操作的計算結果。

修正「除以零」錯誤

讓我們更優雅地處理除以零的情況,讓使用者更容易了解問題。

  1. CalculatorTutorial.cpp 中進行下列變更。 您可以讓程式在編輯時繼續執行,這要歸功於名為 [編輯後繼續] 的調試程式功能。 新增一個if語句於cin >> x >> oper >> y;之後,以檢查是否除以零並在發生時向使用者輸出訊息。 否則,會列印結果。

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    #include "Calculator.h"
    
    using namespace std;
    
    int main()
    {
        double x = 0.0;
        double y = 0.0;
        double result = 0.0;
        char oper = '+';
    
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl;
    
        Calculator c;
        while (true)
        {
            cin >> x >> oper >> y;
            if (oper == '/' && y == 0)
            {
                cout << "Math error: Attempted to divide by zero!" << endl;
                continue;
            }
            else
            {
                result = c.Calculate(x, oper, y);
            }
            cout << "Result " << "of " << x << oper << y << " is: " << result << endl;
        }
    
        return 0;
    }
    
  2. F5 一次。 程序執行會繼續執行,直到它必須暫停才能要求使用者輸入。 再次輸入 10 / 0 。 現在會列印更實用的訊息。 系統會要求使用者輸入更多,且程式會繼續正常執行。

    控制台視窗的螢幕快照,其中顯示實作變更以處理除法后的最終輸出。

    控制台視窗會顯示兩行:10 / 0 結果為:inf,後面接著 10 / 0 數學錯誤:嘗試除以零。

    備註

    當您在偵錯模式中編輯程式代碼時,程式代碼變得過時的風險。 當調試程式仍在執行舊程序代碼,但尚未使用您的變更進行更新時,就會發生這種情況。 調試程式會顯示對話方塊,以通知您何時發生這種情況。 有時候,您可能需要按 F5 來重新整理正在執行的程式代碼。 特別是,如果您在函式內進行變更,而執行點仍位於該函式內,則需要跳出函式,然後再進入該函式,以取得更新的程式碼。 如果這無法運作,而且您看到錯誤訊息,您可以單擊 IDE 頂端功能表選單的紅色方塊來停止偵錯,然後輸入 F5 或選擇工具列上停止按鈕旁的綠色「播放」箭號,再次開始偵錯。

    編輯後繼續可能會失敗的另一個原因是,如果您看到一則訊息,指出「需要原始程序檔完全符合偵錯->選項->一般]底下的原始版本設定,則必須啟用...」。若要修正此問題,請從主功能表中選取 [>>>偵錯一般],並確定已核取 [要求原始程序檔完全符合原始版本]。

    了解執行和偵錯快捷方式

    • F5,或偵錯>開始偵錯,如果尚未有偵錯會話,則會啟動一個偵錯會話,並執行程式直到碰到斷點或需要使用者輸入為止。 如果不需要任何使用者輸入,而且沒有可叫用斷點,程式就會終止,而控制台視窗會在程式完成執行時自行關閉。 如果您的程序輸出到主控台,請在按下 F5 以保持窗口開啟之前,先使用 Ctrl+F5 或設定斷點。
    • Ctrl+F5>[開始但不進入偵錯模式] 會執行應用程式,而不進入偵錯模式。 這比偵錯快一點,而且程式完成執行之後,控制台視窗會保持開啟狀態。
    • 稱為「逐步執行」的 F10 可讓您逐行逐行逐一查看程式代碼,並可視化程式代碼的執行方式,以及每個執行步驟中的變數值。
    • F11 稱為 「逐步執行」的運作方式與 「逐步執行」類似,但會逐步執行任何呼叫的函式。 例如,如果執行中的行呼叫函式,按 F11 會將指標移至函式主體,因此您可以遵循函式的程式代碼執行,再回到您開始的行。 在函數調用上按 F10 步驟,並直接移至下一行;函式呼叫仍會發生,但程式不會暫停以顯示其運作方式。

關閉應用程式

  • 如果仍在執行中,請關閉主控台視窗以停止計算機應用程式。

新增 Git 原始檔控制

既然您已建立應用程式,您可能想要將其新增至 Git 存放庫。 我們會助您一臂之力。 Visual Studio 提供可直接在 IDE 中使用的 Git 工具,使這一過程變得簡單。

小提示

Git 是最常使用的新式版本控制系統,因此無論您是專業開發人員,還是您正在學習如何撰寫程式代碼,Git 都非常有用。 如果您不熟悉 Git,https://git-scm.com/ 網站是很好的起點。 您可以在該處找到速查表、熱門的在線書籍和 Git 基本概念影片。

若要將程式代碼與 Git 產生關聯,您一開始會建立程式代碼所在的新 Git 存放庫。 方法如下:

  1. 在 Visual Studio 右下角的狀態欄中,選取 [新增至原始檔控制],然後選取 [Git]。

    [方案總管] 窗格下方 Git 原始檔控制按鈕的螢幕快照,其中醒目提示 [新增至原始檔控制] 按鈕。

  2. 在 [ 建立 Git 存放庫] 對話框中,登入 GitHub。

    [建立 Git 存放庫] 對話框視窗的螢幕快照,您可以在其中建立新的 GitHub 存放庫。

    存放庫名稱會根據您的資料夾位置自動填入。 根據預設,您的新存放庫是私人的,這表示您是唯一可以存取它的人員。

    小提示

    無論您的存放庫是公用還是私人,最好有安全地儲存在 GitHub 上的程式代碼遠端備份。 即使您未與小組合作,遠端存放庫仍可讓您從任何電腦使用您的程式代碼。

  3. 選擇 創建並推送

    建立存放庫之後,狀態詳細數據會出現在狀態欄中。

    存放庫狀態列的螢幕快照,其位於Visual Studio[方案總管] 窗格下方,其中顯示分支名稱和未完成變更的數目。

    第一個具有箭號的圖示會顯示您最新分支中的傳出/傳入認可數目。 您可以使用此圖示來拉取任何傳入提交或推送任何傳出提交。 您也可以選擇先檢視這些提交。 若要這樣做,請選取圖示,然後選取 [ 檢視傳出/傳入]。

    第二個具有鉛筆的圖示會顯示程式代碼未認可的變更數目。 您可以選取此圖示,在 [Git 變更] 視窗中檢視這些變更。

若要深入瞭解如何搭配您的應用程式使用 Git,請參閱 Visual Studio 版本控制檔

完成的應用程式

祝賀! 您已完成計算機應用程式的程式代碼、建置並對其進行偵錯,並將它新增至存放庫,全部都在Visual Studio中。

後續步驟

深入瞭解 Visual Studio for C++

C++程序設計人員的一般起點是命令行上執行的 “Hello, world!” 應用程式。 您從本文開始,然後移至更具挑戰性的內容:計算機應用程式。

先決條件

建立您的應用程式專案

Visual Studio 會使用 專案 來組織應用程式的程式代碼,以及組織一或多個項目 的解決方案 。 專案包含用來建置應用程式的所有選項、組態和規則。 它也會管理所有項目檔案與任何外部檔案之間的關聯性。 若要建立您的應用程式,請先建立新的專案和方案。

  1. 在 Visual Studio 的功能表欄上,選取 [ 檔案>>專案]。 [ 新增專案] 視窗隨即開啟。

  2. 在左側提要欄位中,確定已選取 Visual C++ 。 在中央,選取 [主控台應用程式]。

  3. 在底部的 [ 名稱 ] 文本框中,將新專案命名為 CalculatorTutorial,然後選取 [ 確定]。

    [新增專案] 對話框的螢幕快照。

    在左側選取 [其他語言] > [Visual C++]。 在中央,選取 [主控台應用程式] 項目類型。 名稱文本框包含 CalculatorTutorial。

    已建立空的 C++ Windows 控制台應用程式 "Hello World"。 主控台應用程式會使用 Windows 主控台視窗來顯示輸出並接受使用者輸入。 在 Visual Studio 中,編輯器視窗隨即開啟,並顯示產生的程式代碼:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    
    int main()
    {
        std::cout << "Hello World!\n";
    }
    
    // Run program: Ctrl + F5 or Debug > Start Without Debugging menu
    // Debug program: F5 or Debug > Start Debugging menu
    
    // Tips for Getting Started:
    //   1. Use the Solution Explorer window to add/manage files
    //   2. Use the Team Explorer window to connect to source control
    //   3. Use the Output window to see build output and other messages
    //   4. Use the Error List window to view errors
    //   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
    //   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
    

確認新的應用程式建置並執行

新 Windows 控制台應用程式的範本會建立簡單的C++ “Hello World” 應用程式。 此時,您可以看到 Visual Studio 如何建置和執行您直接從 IDE 建立的應用程式。

  1. 若要建置專案,請從 [建置] 功能表中選取 [建置方案]。 [輸出] 視窗會顯示建置程序的結果。

    Visual Studio [輸出] 視窗的螢幕快照,其中顯示組建成功。

  2. 若要執行程式代碼,請在功能表欄上選取偵錯[啟動但不偵錯](Ctrl+F5)。

    Visual Studio 偵錯控制台的螢幕快照,其中顯示輸出:Hello World!

    主控台視窗隨即開啟,您的應用程式會在其中執行。

    當您在 Visual Studio 中啟動控制台應用程式時,它會執行您的程式代碼,然後列印 Press any key to close this window . . . 以讓您有機會查看輸出。

    祝賀! 您已在 Visual Studio 中建立第一個 “Hello, world!” 控制台應用程式!

  3. 按下按鍵以關閉主控台視窗並返回Visual Studio。

您現在有工具可在每次變更之後建置並執行您的應用程式,以確認程式代碼仍如預期般運作。 稍後,我們會示範如何偵錯它,如果它無法運作。

編輯程序代碼

現在,讓我們將此範本中的程式代碼變成計算機應用程式。

  1. 將檔案的內容 CalculatorTutorial.cpp 取代為下列程序代碼,使其符合此範例:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl;
        return 0;
    }
    
    // Run program: Ctrl + F5 or Debug > Start Without Debugging menu
    // Debug program: F5 or Debug > Start Debugging menu
    // Tips for Getting Started:
    //   1. Use the Solution Explorer window to add/manage files
    //   2. Use the Team Explorer window to connect to source control
    //   3. Use the Output window to see build output and other messages
    //   4. Use the Error List window to view errors
    //   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
    //   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
    

    瞭解程式代碼:

    • #include 語句會將其他檔案中的程式代碼引入。 有時候,您可能會看到以角括弧括住的檔名,例如 <iostream>。 角括弧會指示編譯程式先在標準系統目錄中尋找 iostream 標頭檔,如果找不到,則尋找專案特定的目錄。 其他時候,您可能會看到檔名周圍有引號,例如 "someHeader.h"。 引號會指示編譯程式略過在標準系統目錄中尋找,而只會查看專案特定的目錄。
    • using namespace std;會指示編譯程式預期C++標準連結庫的程式代碼會用於這個檔案中。 如果沒有這一行,連結庫中的每個關鍵詞必須前面加上 std:: ,才能表示其範圍。 例如,如果沒有該行,每個對cout的參考都會寫成std::cout。 新增了 using 語句,以便更方便存取另一個命名空間中的程式碼。
    • cout關鍵詞會在 C++ 中列印至標準輸出。 運算子 << 會指示編譯程式將其右側的任何內容傳送至標準輸出。
    • 關鍵詞 endl 就像 Enter 鍵;它會結束這一行,並將游標移至下一行。 最好是將 放在 \n 字串內(包含 "")以執行相同動作,因為 endl 一律會排清緩衝區,而且可能會損害程式的效能。 由於這是一個非常小的應用程式,因此改用endl來替代。
    • 所有C++語句都必須以分號結尾,而且所有C++應用程式都必須包含函 main() 式。 此函式是程式在啟動時執行的內容。 所有程式代碼都必須可從 main() 存取,才能使用。
  2. 若要儲存盤案,請按 Ctrl+S,或選取功能表欄下方工具列中的磁碟片圖示。

  3. 若要執行應用程式,請按 Ctrl+F5 或移至 [ 錯] 功能表,然後選取 [ 啟動但不偵錯]。 如果您收到顯示 此專案已過期的彈出視窗,您可以選取 [不要再顯示此對話框],然後選取 [ ] 來建置您的應用程式。 您應該看到看起來如下的主控台視窗:

    在主控台視窗中執行的計算機應用程式的螢幕快照。

    主控台應用程式會顯示輸出,也就是:計算機主控台應用程式。 請輸入要執行的作業。 格式:a+b |a-b |a*b |a/b. 程式以程式代碼 0 結束,而且有訊息會在偵錯停止時自動關閉主控台,請啟用 [工具] > [選項] >偵錯>在偵錯停止時自動關閉控制台。 最後,有訊息可按下任何按鍵關閉此視窗。

  4. 當您完成時,請關閉主控台視窗。

新增程式代碼以執行一些數學運算

類別就像是物件執行某些動作的藍圖。 在此情況下,我們會定義計算機類別來包含數學邏輯。

新增 Calculator 類別

  1. 移至 [專案] 功能表,然後選取 [ 新增類別]。 在 [ 類別名稱] 編輯方塊中,輸入 計算機。 請選擇 [確定]

    Visual Studio [新增類別] 對話框的螢幕快照。

    類別名稱欄位包含文字計算機。 .h 檔案欄位包含 Calculator.h。 .cpp檔案欄位包含Calculator.cpp。 基類欄位是空的。 內嵌和Managed的選項未被勾選。

    類別就像是物件執行某些動作的藍圖。 在此情況下,我們會定義計算機及其運作方式。

    兩個新檔案會新增至您的專案。 若要一次儲存所有已變更的檔案,請按 Ctrl+Shift+S。 這是 [全部儲存盤>] 的鍵盤快捷方式。 另外還有 [ 全部儲存] 工具列按鈕,這是兩個磁碟片的圖示,位於 [儲存 ] 按鈕旁邊 。 一般而言,最好經常執行 [全部儲存 ],因此當您儲存時不會錯過任何檔案。

    [新增類別精靈] 會.h建立 與 類別同名的檔案.cpp。 您可以在 [ 方案 總管] 視窗中看到項目檔的完整清單,顯示在 IDE 側邊。 如果看不到 方案 總管,請從功能表欄開啟它:選取 [ 檢視>方案總管]。

    Visual Studio [方案總管] 視窗的螢幕快照。

    計算機教學課程專案具有頭文件節點,其中包含 Calculator.h、stdafx.h 和 targetver.h。 來源檔案節點包含Calculator.cpp、CalculatorTutorial.cpp和stdafx.cpp。 參考、外部相依性和資源文件的節點可看見,但已關閉。

    您可以在 [方案總管] 視窗中按兩下滑鼠開啟檔案。 按兩下 Calculator.h 以開啟它。

  2. 將 的內容 Calculator.h 取代為下列程式代碼,讓檔案現在看起來像這樣:

    #pragma once
    class Calculator
    {
    public:
        double Calculate(double x, char oper, double y);
    };
    

    了解程式碼

    • 此程式代碼會宣告名為 Calculate的新函式,其會處理加法、減法、乘法和除法的數學運算。
    • C++程式代碼會組織成 標頭.h) 檔案和 來源.cpp) 檔案。 多種編譯器可支援其他副檔名,但這些是主要需要了解的。 函式和變數通常會 宣告,也就是在頭檔中指定名稱和類型,並在原始程式檔中 作或指定定義。 若要存取另一個檔案中定義的程式代碼,您可以使用 #include "filename.h",其中 filename.h 是宣告您要使用的變數或函式的檔名。
    • 最好根據程式代碼的功能將程式代碼組織成不同的檔案,以便您稍後輕鬆找到所需的程序代碼。 在我們的案例中,我們會將 類別與包含 函式的Calculator檔案分開定義main(),但我們計劃參考 Calculator 中的main()類別。
  3. 綠色波浪線會出現在Calculate,因為Calculate函式雖然已宣告,但並未定義。 將滑鼠停留在 Calculate 上方,點擊燈泡上的向下箭號,然後選取 Calculator.cpp 中建立 'Calculate' 的定義。 彈出視窗隨即出現,可讓您查看另一個檔案中所做的程式碼變更。 程式碼已新增至 Calculator.cpp

    顯示使用燈泡下拉式清單的影片,以選取 [在 Calculator.cpp 中建立計算的定義]。

    目前,它只會傳回 0.0。 讓我們改變這點。 按 Esc 關閉快顯,然後選擇 [ ] 以儲存變更。

  4. 切換至 Calculator.cpp 編輯器視窗中的檔案。 以下列程式代碼取代檔案的內容:

    #include "Calculator.h"
    
    double Calculator::Calculate(double x, char oper, double y)
    {
        switch(oper)
        {
            case '+':
                return x + y;
            case '-':
                return x - y;
            case '*':
                return x * y;
            case '/':
                return x / y;
            default:
                return 0.0;
        }
    }
    

    了解程式碼

    • 函式 Calculate 接受數位、運算符和第二個數位。 然後,它會在兩個數字上執行要求的作業。
    • 語句 switch 會檢查提供的運算子,並執行與該運算對應的情況。 此 default: 情境是一個備用方案,用於當使用者輸入任何上述 case 語句未處理的運算符時進行處理。 最好以更簡潔的方式處理無效的使用者輸入,但這已超出本教學課程的範圍。
    • 關鍵詞 double 表示支援小數的數字類型。 這種類型的數位稱為浮點數,表示 double 具有額外精確度的浮點數。 如此一來,計算機就可以處理十進位數學和整數數學。 函 Calculate 式必須一律傳回雙精確度浮點數,因為程式代碼開頭的 double (這表示函式的傳回型別),這就是為什麼我們在預設案例中傳回0.0的原因。
    • 檔案 .h 會宣告函式 原型,其會事先告知編譯程式需要哪些參數,以及預期其傳回類型。 檔案 .cpp 具有函式的所有實作詳細數據。

如果您此時再次建置並執行程序代碼,它仍會在要求執行哪個作業之後結束。 接下來,修改 函 main 式以執行一些計算。

呼叫 Calculator 類別成員函式

  1. 更新 main 函式中的 CalculatorTutorial.cpp,如下所示:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    #include "Calculator.h"
    
    using namespace std;
    
    int main()
    {
        double x = 0.0;
        double y = 0.0;
        double result = 0.0;
        char oper = '+';
    
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl;
    
        Calculator c;
        while (true)
        {
            cin >> x >> oper >> y;
            result = c.Calculate(x, oper, y);
            cout << "Result is: " << result << endl;
        }
    
        return 0;
    }
    

    了解程式碼

    • 由於C++程式一律從 main() 函式開始,因此我們需要從該處呼叫其他程序代碼,因此需要語句 #include ,才能讓函 main() 式看到該程序代碼。
    • 變數 xyoperresult 會分別宣告為儲存第一個數位、第二個數位、運算元和最終結果。 最好給他們一些初始值,以避免未定義的行為,這就是這裡完成的工作。
    • Calculator c; 行會將名為 c 的物件宣告為 類別的 Calculator 實例。 類別本身只是計算機運作方式的藍圖;對象是執行數學運算的特定計算機。
    • 語句 while (true) 是迴圈。 只要內部的條件 () 為 true,迴圈內的程式代碼就會重複執行。 由於條件只是列為 true,因此一律為 true,因此循環會永遠執行。 若要關閉程式,用戶必須手動關閉控制台視窗。 否則,程式一律會等候新的輸入。
    • 關鍵詞 cin 接受來自用戶的輸入。 輸入數據流足夠聰明,可以處理主控台視窗中輸入的一行文字,並依序放在列出的每個變數內。
    • 表達式 c.Calculate(x, oper, y); 會呼叫 Calculate 稍早定義的函式,並提供輸入值和要求的作業。 然後,函式會傳回儲存在 中的 result數位。
    • 最後, result 會列印到主控台,而使用者會看到計算的結果。

再次建置並測試程序代碼

再次測試程式,以確保一切正常運作。

  1. Ctrl+F5 重建並啟動應用程式。

  2. 輸入 5+5,然後按 Enter。 確認結果為 10。

    執行計算機應用程式的命令視窗螢幕快照。它會顯示 5 + 5 的結果為 10。

  3. 關閉主控台視窗以停止程式。

對應用程式進行偵錯

由於使用者可以在主控台視窗中輸入任何內容,因此讓我們確保程式可以處理非預期的輸入。 讓我們不要執行程式,而是進行偵錯,因此我們可以檢查其執行逐步執行的內容。

在調試程式中執行應用程式

  1. CalcuatorTutorial.cpp中,設定行上的 result = c.Calculate(x, oper, y); 斷點。 若要設定斷點,請按兩下編輯器視窗左邊緣灰色垂直線旁的線條,讓紅點出現。

    使用者在第 23 行上設定斷點的螢幕快照:result = c.Calculate(x, oper, y):。

    現在當您對程序進行偵錯時,它一律會在該行暫停執行。 我們已經有一個粗略的想法,程式適用於簡單的案例。 由於我們不想每次暫停執行,因此讓我們設定斷點條件。

  2. 以滑鼠右鍵按兩下代表斷點的紅點,然後選取 [ 條件]。 在條件編輯方塊中, 輸入 (y == 0) && (oper == '/')。 當您完成儲存斷點條件時,請選取 [ 關閉 ] 按鈕。

    顯示條件斷點視窗的螢幕快照。

    斷點位於行上:result = c dot Calculate (x, oper, y)。 '條件...' [條件] 選項已勾選。 [條件] 下拉式清單會設定為 [條件運算式]。 條件下拉式清單會設定為 「Is true」。 條件設定為 y == 0 && oper == '/'。

    如果嘗試除法 0,則執行會在斷點暫停。

  3. 若要偵錯程式,請按 F5,或選取具有綠色箭號圖示的 [ 本機 Windows 調試程式] 工具列按鈕。 在主控台應用程式中,如果您輸入類似 「5 - 0」 的內容,則程式會正常運作並持續執行。 不過,如果您輸入 「10 / 0」,它會在斷點暫停。 您甚至可以在運算符和數字之間放置任意數目的空格; cin 足夠聰明,可以適當地剖析輸入。

    顯示程式執行暫停於條件斷點的影片。

    用戶輸入 5 - 0。 應用程式輸出:結果為 5。 然後,使用者輸入 10/0,由於符合條件斷點,執行會在以下行停止:result = c.Calculate(x,oper,y)。

調試程式中有用的視窗

當您對程式代碼進行偵錯時,您可能會注意到會出現一些新的視窗。 這些視窗可協助您的偵錯體驗。 查看 Autos 視窗。 [ 自動變數] 視窗會顯示目前至少使用三行的變數值,且最多是目前這一行。 如果您沒有看到 [自動變數] 視窗,請從主功能表選取 [>錯Windows>Autos]。

Visual Studio 調試程式 [自動變數] 視窗的螢幕快照。

oper 的值是 47 '/',結果為 5、x 為 10,而 y 為 0。

若要查看該函式中的所有變數,請切換至 [ 局部變數 ] 視窗。 因為這是小型函式,[自動變數] 和 [局部變數] 視窗會顯示相同的變數。 但是您可以在偵錯時修改這些變數的值,以查看它們對程式有何影響。 在此案例中,我們會讓他們獨自離開。 選取 [局部變數] 視窗底部的 [自動變數],或從 [主功能表] 中選取 [偵錯][>][局部變數],以開啟 [>] 視窗。

Visual Studio 中 [局部變數] 視窗的螢幕快照,其中顯示偵錯時局部變數的目前值。

oper 的值是 47 '/',結果為 0、x 為 10,而 y 為 0。

您也可以將滑鼠停留在程式碼本身的變數上方,以查看其目前暫停執行的值。 請先按下編輯器視窗,以確定編輯器視窗處於焦點中。

示範將滑鼠停留在變數 y 上方時出現的工具提示的影片。它會顯示 y 的目前值,也就是 0。

繼續偵錯

  1. 左邊的黃色箭號會顯示目前的執行點。 目前的行會呼叫 Calculate,因此請按 F11單步執行 函式,這會帶您進入函式的 Calculate 主體。 請小心使用 執行進入, 因為它會進入您所在行的任何函式,包括標準庫函式。 您可以進入標準程式庫,但相較於程式庫的程式碼,您可能更有興趣專注於您自己的程式碼。

  2. 現在執行點是在函式的 Calculate 開頭,請按 F10 移至程式執行中的下一行。 F10 也稱為 「步過」。 您可以使用 [逐步執行 ] 從行移至行,而不深入探討該行中每個部分所發生之專案的詳細數據。 一般而言,您應該使用 「略過步驟」,而不是 「進入步驟」,除非您想要更深入地探討從其他地方呼叫的程式碼(就像您先前進入過 Calculate 的主體一樣)。

  3. 繼續使用 F10逐步執行 每一行,直到返回到另一個檔案的 main() 函式,並在 cout 行停止。

    程式正在執行預期的工作:它會採用第一個數位,並將它除以第二個數位。 在cout行上,將滑鼠停留在result變數上,或在 [result] 視窗中查看。 其值為 inf,看起來不對。

    偵錯計算機的螢幕快照。

    調試程式中目前的語句是 cout << “Result is: ” << result << endl;在 [自動變數] 視窗中,結果為 inf。

    讓我們修正此問題。 此 cout 行會輸出儲存在 中 result的任何值,因此當您使用 F10 再向前執行一行時,控制台視窗會顯示:

    Visual Studio 偵錯控制台的螢幕快照,其中顯示零除法的結果。

    應用程式輸出:請輸入要執行的作業。 格式:a+b |a-b |a*b |a/b. 用戶輸入了 5-0。 應用程式輸出:結果為:5。 用戶輸入 10/0。 應用程式輸出:結果為:inf

    此結果是因為除以零是未定義的,所以程式無法提供所要求操作的計算結果。

修正「除以零」錯誤

讓我們更優雅地處理除以零的情況,讓使用者更容易了解問題。

  1. CalculatorTutorial.cpp 中進行下列變更。 (由於調試程式功能稱為 [編輯後繼續],因此您可以在編輯時讓程式繼續執行。 變更是新增 if 下列 cin >> x >> oper >> y; 語句,以檢查除法是否為零,並在發生時將訊息輸出給使用者。 否則,會列印結果:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    #include "Calculator.h"
    
    using namespace std;
    
    int main()
    {
        double x = 0.0;
        double y = 0.0;
        double result = 0.0;
        char oper = '+';
    
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl;
    
        Calculator c;
        while (true)
        {
            cin >> x >> oper >> y;
            if (oper == '/' && y == 0)
            {
                cout << "Division by 0 exception" << endl;
                continue;
            }
            else
            {
                result = c.Calculate(x, oper, y);
            }
            cout << "Result is: " << result << endl;
        }
    
        return 0;
    }
    
  2. F5 一次。 程序執行會繼續執行,直到它必須暫停才能要求使用者輸入。 再次輸入 10 / 0 。 現在會列印更實用的訊息。 系統會要求使用者輸入更多,且程式會繼續正常執行。

    偵錯主控台的影片,顯示程式碼變更後的最終結果。輸入 10 / 0,程式會顯示「除以 0 例外狀況」。

    備註

    當您在偵錯模式中編輯程式代碼時,程式代碼變得過時的風險。 當調試程式仍在執行舊程序代碼,但尚未使用您的變更進行更新時,就會發生這種情況。 除錯器會彈出對話框,通知您何時發生這種情況。 有時候,您可能需要按 F5 來重新整理正在執行的程式代碼。 特別是,如果您在執行的位置位於該函數內時進行變更,請退出該函數,然後重新進入以取得更新的程式碼。 如果因為某些原因而無法運作,而且您看到錯誤訊息,您可以按下 IDE 頂端功能表下工具列中的紅色方塊來停止偵錯,然後輸入 F5 或選擇工具列上停止按鈕旁的綠色「播放」箭號,再次開始偵錯。

    編輯後繼續可能會失敗的另一個原因是您必須移至主功能表,然後選取 [工具>選項>>偵錯一般],並確定已核取 [要求原始程序檔完全符合原始版本]。

    了解執行和偵錯快捷方式

    • F5,或偵錯>開始偵錯,如果尚未有偵錯會話,則會啟動一個偵錯會話,並執行程式直到碰到斷點或需要使用者輸入為止。 如果不需要任何使用者輸入,而且沒有可叫用斷點,程式就會終止,而控制台視窗會在程式完成執行時自行關閉。 如果您的程序輸出到主控台,請在按下 F5 以保持窗口開啟之前,先使用 Ctrl+F5 或設定斷點。
    • Ctrl+F5>[開始但不進入偵錯模式] 會執行應用程式,而不進入偵錯模式。 這比偵錯快一點,而且程式完成執行之後,控制台視窗會保持開啟狀態。
    • 稱為「逐步執行」的 F10 可讓您逐行逐行逐一查看程式代碼,並可視化程式代碼的執行方式,以及每個執行步驟中的變數值。
    • F11 稱為 「逐步執行」的運作方式與 「逐步執行」類似,但會逐步執行任何呼叫的函式。 例如,如果執行中的行呼叫函式,按 F11 會將指標移至函式主體,因此您可以遵循函式的程式代碼執行,再回到您開始的行。 在函數調用上按 F10 步驟,並直接移至下一行;函式呼叫仍會發生,但程式不會暫停以顯示其運作方式。

關閉應用程式

  • 如果仍在執行中,請關閉主控台視窗以停止計算機應用程式。

完成的應用程式

祝賀! 您已完成計算機應用程式的程式代碼,並在 Visual Studio 中建置並對其進行偵錯。

後續步驟

深入瞭解 Visual Studio for C++