Vytvoření kalkulačky konzoly v C++

Obvyklým výchozím bodem pro programátory v jazyce C++ je aplikace "Hello, World!", která běží na příkazovém řádku. to je to, co vytvoříte jako první v Visual Studio v tomto článku, a pak budeme pokračovat na něco náročnějšího: aplikace kalkulačky.

Požadavky

  • máte Visual Studio s nainstalovanou a spuštěnou úlohou vývoj desktopových aplikací v jazyce C++ v počítači. Pokud ještě není nainstalovaný, přečtěte si téma Instalace podpory C++ v Visual Studio.

Vytvoření projektu aplikace

Visual Studio používá projekty k uspořádání kódu pro aplikaci a řešení pro uspořádání vašich projektů. Projekt obsahuje všechny možnosti, konfigurace a pravidla používaná k sestavování aplikací. Spravuje také vztah mezi všemi soubory projektu a všemi externími soubory. Chcete-li vytvořit aplikaci, nejprve vytvořte nový projekt a řešení.

  1. pokud jste právě spustili Visual Studio, zobrazí se dialogové okno Visual Studio Start. Začněte tím, že kliknete na vytvořit nový projekt .

    snímek obrazovky počátečního dialogového okna Visual Studio 2022

    v opačném případě na řádku nabídek Visual Studio vyberte možnost soubornovéProject. Otevře se okno vytvořit nový projekt .

  2. V seznamu šablon projektu zvolte možnost aplikace konzolya pak klikněte na tlačítko Další.

    Snímek obrazovky s výběrem šablony konzolové aplikace

    Důležité

    Ujistěte se, že jste zvolili verzi C++ šablony konzolové aplikace . obsahuje značky C++, Windowsa Console a ikona má v rohu "+ +".

  3. v dialogovém okně konfigurovat nový projekt vyberte pole Project název pro úpravy, pojmenujte nový projekt CalculatorTutoriala pak zvolte vytvořit.

    Pojmenujte projekt v dialogovém okně Konfigurovat nový projekt. .

    vytvoří se prázdná aplikace konzoly C++ Windows. konzolové aplikace používají okno konzoly Windows k zobrazení výstupu a přijetí vstupu uživatele. v Visual Studio se otevře okno editoru a zobrazí se generovaný kód:

    // 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
    

Ověřte, že se nová aplikace sestavuje a spustí.

šablona pro novou Windows konzolovou aplikaci vytvoří jednoduchou aplikaci C++ "Hello World". v tomto okamžiku můžete zjistit, jak Visual Studio sestavovat a spouštět aplikace, které vytvoříte přímo z rozhraní IDE.

  1. Chcete-li sestavit projekt, v nabídce sestavení klikněte na příkaz Sestavit řešení . V okně výstup se zobrazí výsledky procesu sestavení.

    snímek obrazovky Visual Studio 2019 s oknem výstup zobrazujícím výsledek procesu sestavení.

  2. Chcete-li spustit kód, na panelu nabídek vyberte možnost ladit, Spustit bez ladění.

    snímek obrazovky Visual Studio 2019 Microsoft Visual Studio konzole ladění znázorňující, že kód byl úspěšně spuštěn.

    Otevře se okno konzoly a pak se spustí vaše aplikace. když spustíte konzolovou aplikaci v Visual Studio, spustí se váš kód a pak se zobrazí zpráva pro zavření tohoto okna stisknutím libovolné klávesy. . . ", pokud chcete zobrazit výstup. Gratulujeme! Vytvořili jste svou první konzolovou aplikaci "Hello, World!" v Visual Studio!

  3. Stisknutím klávesy zavřete okno konzoly a vraťte se do Visual Studio.

Teď máte nástroje pro sestavení a spuštění vaší aplikace po každé změně, abyste ověřili, že kód pořád funguje podle očekávání. Později vám ukážeme, jak ji ladit, pokud ne.

Upravit kód

Teď kód v této šabloně převeďte do aplikace kalkulačky.

  1. V souboru CalculatorTutorial. cpp upravte kód tak, aby odpovídal následujícímu příkladu:

    // 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
    

    Princip kódu:

    • #includePříkazy umožňují odkazování na kód nacházející se v jiných souborech. V některých případech se může zobrazit název souboru uzavřený pomocí lomených závorek ( <> ); další časy je uzavřený pomocí uvozovek (<>). Obecně se používají lomené závorky při odkazování na standardní knihovnu jazyka C++, zatímco uvozovky se používají pro jiné soubory.
    • using namespace std;Řádek instruuje kompilátor, aby čekal na použití v tomto souboru ve standardní knihovně C++. Bez tohoto řádku by bylo nutné každé klíčové slovo z knihovny předcházet s std:: , aby bylo možné poznamenat svůj rozsah. Například bez tohoto řádku cout musí být každý odkaz napsán jako std::cout . usingPříkaz je přidán, aby bylo možné v kódu vyčistit.
    • coutKlíčové slovo se používá k tisku do standardního výstupu v jazyce C++. <<Operátor instruuje kompilátor, aby odesílal, ať je napravo od něj až po standardní výstup.
    • Klíčové slovo endl je jako klávesa ENTER. ukončí řádek a přesune kurzor na další řádek. Je lepší postup vložit \n dovnitř řetězce (obsaženého "") k tomu, jak to samé udělat, protože endl vždycky vyprázdní vyrovnávací paměť a může snížit výkon programu, ale vzhledem k tomu, že se jedná o velmi malou aplikaci, endl se místo toho používá pro lepší čitelnost.
    • Všechny příkazy jazyka C++ musí končit středníkem a všechny aplikace C++ musí obsahovat main() funkci. Tato funkce je to, co program spouští na začátku. Aby bylo možné použít, musí být veškerý kód přístupný z main() .
  2. Soubor uložíte tak, že zadáte CTRL + Snebo v horní části rozhraní IDE kliknete na ikonu Uložit , na panelu nástrojů pod řádkem nabídek.

  3. Chcete-li spustit aplikaci, stiskněte klávesy CTRL + F5 nebo přejděte do nabídky ladění a zvolte možnost Spustit bez ladění. Mělo by se zobrazit okno konzoly, které zobrazuje text zadaný v kódu.

  4. Až skončíte, zavřete okno konzoly.

Přidejte kód, abyste mohli provádět některé matematické

Je čas přidat nějakou matematickou logiku.

Přidání třídy kalkulačky

  1. přejděte do nabídky Project a vyberte přidat třídu. V poli název třídy upravte zadejte Kalkulačka. Vyberte OK. Do projektu se přidají dva nové soubory. Chcete-li uložit všechny změněné soubory najednou, stiskněte klávesy CTRL + SHIFT + S. Je to klávesová zkratka pro souborSave All. K dispozici je také tlačítko panelu nástrojů pro možnost Uložit vše– ikona dvou disket, která se nachází vedle tlačítka Uložit . Obecně platí, že dobrým zvykem je ukládat všechny často, takže při ukládání nenajdete žádné soubory.

    Snímek obrazovky dialogového okna Přidat třídu se zadaným kalkulačkou v textovém poli název třídy

    Třída je jako podrobný plán pro objekt, který něco dělá. V tomto případě definujeme kalkulačku a to, jak má fungovat. Průvodce přidáním třídy , který jste použili nad vytvořenými soubory. h a. cpp, které mají stejný název jako třída. Úplný seznam souborů projektu můžete zobrazit v okně Průzkumník řešení , které je viditelné na straně integrovaného vývojového prostředí (IDE). Pokud okno není viditelné, můžete ho otevřít z řádku nabídek: zvolit zobrazeníPrůzkumník řešení.

    snímek obrazovky okna Průzkumník řešení Visual Studio 2019 zobrazující projekt kurzu kalkulačky

    Nyní byste měli mít v editoru otevřené tři karty: CalculatorTutorial. cpp, Kalkulačka. ha Kalkulačka. cpp. Pokud jeden z nich omylem zavřete, můžete ho znovu otevřít dvojitým kliknutím v okně Průzkumník řešení .

  2. V programu Kalkulačka. hodeberte ~Calculator(); řádky a, které byly vygenerovány, protože je nebudete potřebovat. Dále přidejte následující řádek kódu, aby soubor byl nyní vypadat takto:

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

    Vysvětlení kódu

    • Řádek, který jste přidali, deklaruje novou funkci nazvanou Calculate , kterou použijeme ke spouštění matematických operací pro sčítání, odčítání, násobení a dělení.
    • Kód C++ je uspořádán do souborů hlaviček (. h) a zdrojových souborů (. cpp). Několik dalších přípon souborů je podporováno různými kompilátory, ale jedná se o ty, kterých se dozvíte. Funkce a proměnné jsou obvykle deklarovány, to znamená, že jsou zadány název a typ, v hlavičkových souborech a implementoványnebo předány definici ve zdrojových souborech. Chcete-li získat přístup ke kódu definovanému v jiném souboru, můžete použít #include "filename.h" , kde ' filename. h ' je název souboru, který deklaruje proměnné nebo funkce, které chcete použít.
    • Dva řádky, které jste odstranili, byly deklarovány jako konstruktor a destruktor pro třídu. Pro jednoduchou třídu, jako je tato, ji kompilátor vytvoří za vás, přičemž jejich použití jsou nad rámec tohoto kurzu.
    • Je vhodné organizovat kód do různých souborů na základě toho, co dělá, takže je snadné najít kód, který potřebujete později. V našem případě jsme třídu definovali Calculator samostatně ze souboru obsahujícího main() funkci, ale plánujeme na ni odkazovat Calculator v main() .
  3. Pod položkou se zobrazí zelená vlnovka Calculate . Je to proto, že jsme Calculate funkci v souboru. cpp nedefinovali. Najeďte myší na slovo, klikněte na žárovky (v tomto případě Screwdriver), který se zobrazí, a v kalkulačce. cpp vyberte vytvořit definici pro ' vypočítat '.

    snímek obrazovky Visual Studio 2019 s zvýrazněnou možností vytvořit definici výpočtu v kalkulačkě č. p p

    Zobrazí se automaticky otevírané okno, které vám nabídne náhled změny kódu provedené v jiném souboru. Kód byl přidán do kalkulačky. cpp.

    Automaticky otevírané okno s definicí vypočítat.

    V současné době pouze vrátí 0,0. Pojďme to změnit. Stisknutím klávesy ESC zavřete automaticky otevírané okno.

  4. V okně editoru přepněte na soubor kalkulačky. cpp . Odeberte Calculator() oddíly a ~Calculator() (stejně jako v souboru. h) a přidejte následující kód do Calculate() :

    #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;
        }
    }
    

    Vysvětlení kódu

    • Funkce Calculate spotřebovává číslo, operátor a druhé číslo a poté provede požadovanou operaci s čísly.
    • Příkaz switch ověří, který operátor byl zadán a provede pouze případ odpovídající této operaci. Výchozí: Case je záložní pro případ, že uživatel zadá operátor, který není přijat, takže program nebude přerušen. Obecně je nejlepší zpracovávat neplatný vstup uživatele efektivněji, ale toto je nad rámec tohoto kurzu.
    • doubleKlíčové slovo označuje typ čísla, který podporuje desetinná čísla. Kalkulačka tak může zpracovat desítkové matematické i celočíselné matematické hodnoty. CalculateFunkce je vyžadována, aby vždy vracela takové číslo z důvodu na začátku double kódu (označuje návratový typ funkce), což je důvod, proč vracíme 0,0 i ve výchozím případu.
    • Soubor. h deklaruje prototypfunkce, který instruuje kompilátor dopředu, jaké parametry vyžaduje a jaký návratový typ, který má z něj očekávat. Soubor. cpp obsahuje všechny podrobnosti o implementaci funkce.

Pokud v tomto okamžiku sestavíte a znovu spustíte kód, bude i nadále ukončen po žádosti o operaci, která má být provedena. V dalším kroku upravíte main funkci, aby se provede několik výpočtů.

Volání funkcí členů třídy kalkulačky

  1. Teď pojďme aktualizovat main funkci v main:

    // 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;
    }
    

    Vysvětlení kódu

    • Vzhledem k tomu, že programy C++ vždy začnou main() fungovat na funkci, musíme odtud zavolat náš další kód, takže #include je třeba zadat příkaz.
    • Některé počáteční proměnné x , y , oper a result jsou deklarovány pro uložení prvního čísla, druhého čísla, operátoru a konečného výsledku. Je vždy vhodné jim poskytnout některé počáteční hodnoty, aby nedocházelo k nedefinovanému chování, což znamená to, co se děje.
    • Calculator c;Řádek deklaruje objekt nazvaný "c" jako instanci Calculator třídy. Samotná třída je jenom podrobný plán, jak fungují kalkulačky. objekt je konkrétní kalkulačka, která je matematické.
    • while (true)Příkaz je smyčka. Kód uvnitř smyčky pokračuje v provádění a znovu, dokud podmínka uvnitř () obsahuje hodnotu true. Vzhledem k tomu, že je tato podmínka jednoduše uvedená jako true , je vždycky true, takže se smyčka spouští trvale. Chcete-li program ukončit, uživatel musí ručně zavřít okno konzoly. V opačném případě bude program vždycky čekat na nový vstup.
    • cinKlíčové slovo slouží k přijetí vstupu od uživatele. Tento vstupní datový proud je dostatečně automatický pro zpracování řádku textu zadaného v okně konzoly a jeho umístění do každé z uvedených proměnných, v pořadí, za předpokladu, že vstup uživatele odpovídá požadované specifikaci. Tento řádek lze upravit tak, aby přijímal různé typy vstupů, například více než dvě čísla, i když Calculate() by mohla být funkce také aktualizována, aby to bylo možné zpracovat.
    • c.Calculate(x, oper, y);Výraz volá Calculate funkci definovanou dříve a zadá zadané vstupní hodnoty. Funkce pak vrátí číslo, které je uloženo v result .
    • Nakonec result je vytištěna do konzoly, takže uživatel uvidí výsledek výpočtu.

Sestavit a otestovat kód znovu

Nyní je čas otestovat program znovu, abyste se ujistili, že vše funguje správně.

  1. Stisknutím kombinace kláves CTRL + F5 znovu sestavte a spusťte aplikaci.

  2. Zadejte 5 + 5 a stiskněte klávesu 5 + 5. Ověřte, že je výsledek 10.

    snímek obrazovky Visual Studio 2019 Microsoft Visual Studio konzole ladění zobrazuje správný výsledek 5 + 5.

Ladění aplikace

Vzhledem k tomu, že uživatel je zdarma psát do okna konzoly, je nutné se ujistit, že kalkulačka zpracovává určitý vstup podle očekávání. Místo spuštění programu je možné ho místo toho ladit, takže můžeme zkontrolovat, co podrobně dělá, a krok za krokem.

Spuštění aplikace v ladicím programu

  1. Nastavte zarážku na result = c.Calculate(x, oper, y); řádku hned poté, co byl uživatel požádán o vstup. Chcete-li nastavit zarážku, klikněte na tlačítko vedle čáry v šedém svislém pruhu podél levého okraje okna editoru. Zobrazí se červená tečka.

    snímek obrazovky Visual Studio 2019 zobrazující červenou tečku, která představuje zarážku.

    Nyní když program ladíme, vždy pozastaví provádění na daném řádku. Již máme hrubý nápad, který program funguje pro jednoduché případy. Vzhledem k tomu, že nechcete pokaždé pozastavit běh pokaždé, provedeme podmíněný zarážku.

  2. Pravým tlačítkem myši klikněte na červenou tečku, která představuje zarážku, a vyberte podmínky. Do pole pro úpravy podmínky zadejte (y == 0) && (oper == '/') . Až budete hotovi, klikněte na tlačítko Zavřít . Podmínka se uloží automaticky.

    snímek obrazovky Visual Studio 2019 zobrazující oddíl Nastavení zarážky a podmínky přidané do hodnoty true.

    Nyní pozastavíme provádění na zarážce konkrétně v případě, že došlo k pokusu o dělení 0.

  3. chcete-li ladit program, stiskněte klávesu F5nebo zvolte tlačítko místní Windows ladicího programu na panelu nástrojů s ikonou zelené šipky. Pokud v aplikaci konzoly zadáte něco jako "5-0", program se chová normálně a zůstane spuštěný. Pokud však zadáte "10/0", pozastaví se na zarážce. Mezi operátorem a čísly můžete dokonce vložit libovolný počet mezer: cin je dostatečně inteligentní, aby bylo možné správně analyzovat vstup.

    Snímek obrazovky s jazykem Visual studia 2019 ukazující, že program byl pozastaven na podmíněné zarážce.

Užitečná okna v ladicím programu

Kdykoli budete ladit kód, můžete si všimnout, že se zobrazí některá nová okna. Tato okna můžou pomáhat s vaším prostředím pro ladění. Podívejte se na okno Automatické hodnoty. Okno Automatické hodnoty zobrazuje aktuální hodnoty proměnných, které byly použity alespoň na tři řádky před a až do aktuálního řádku. Chcete-li zobrazit všechny proměnné z této funkce, přepněte do okna místní hodnoty. Hodnoty těchto proměnných můžete v průběhu ladění skutečně upravovat, abyste viděli, jaký má vliv na program. V takovém případě je zadáte samostatně.

snímek obrazovky okna místní hodnoty v Visual Studio 2019. hodnot

Můžete také umístit ukazatel myši na proměnné v samotném kódu, abyste viděli jejich aktuální hodnoty, kde je provádění aktuálně pozastaveno. Ujistěte se, že je okno editoru aktivní, a to tak, že na něj kliknete nejdřív.

snímek obrazovky s Visual Studio 2019 zobrazující popis, který se zobrazí při zobrazení hodnoty proměnné.

Pokračování v ladění

  1. Žlutý řádek na levé straně znázorňuje aktuální bod provádění. Aktuální řádek zavolá Calculate , takže stisknutím klávesy Calculate se zajděte do funkce. Najdete ho sami v těle Calculate funkce. Buďte opatrní při krokování; Pokud to uděláte příliš daleko, může dorazit spoustu času. Přejde do libovolného kódu, který použijete na řádku, na kterém se nacházíte, včetně standardních funkcí knihovny.

  2. Teď, když je bod spuštění na začátku Calculate funkce, můžete stisknutím klávesy Calculate přejít na další řádek v provádění programu. F10 se také označuje jako krok za krokem. Můžete použít Krok nahoru pro přechod mezi řádky a spojnici, aniž byste museli zobrazit podrobnosti o tom, co se v každé části řádku objevuje. Obecně byste měli použít Krok přes místo kroku into, pokud nechcete podrobně do kódu, který je volán jinam (stejně jako při přístupu k těle ).

  3. Pokračujte v používání nástroje F10 , abyste mohli Krokovat s každým řádkem, dokud se nevrátíte k funkci v druhém souboru a zastavíte řádek.

    Vypadá to, že program dělá, co je očekávané: přijímá první číslo a rozděluje ho druhým. Na cout řádku umístěte ukazatel myši na result proměnnou nebo se podívejte result do okna cout hodnoty. Uvidíte, že jeho hodnota je uvedena jako "INF", což nevypadá správně, takže ji Opravme. coutŘádek právě vypisuje libovolnou hodnotu uloženou v result , takže když postupně jednou zadáte další řádek pomocí nástroje cout, okno konzoly zobrazí:

    snímek obrazovky Visual Studio 2019 Microsoft Visual Studio konzole ladění znázorňující výsledek dělení nulou.

    K tomuto výsledku dochází, protože dělení nulou není definováno, takže program nemá číselnou odpověď na požadovanou operaci.

Oprava chyby "dělení nulou"

Podíváme se, aby dělení nulou bez problémů, takže uživatel může pochopit problém.

  1. V souboru CalculatorTutorial.cpp proveďte následující změny. (Díky funkci ladicího programu s názvem Upravit a pokračovat můžete nechat program spuštěný při úpravách):

    // 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. Teď jednou stiskněte klávesu F5. Provádění programu pokračuje až do doby, než se musí pozastavit a požádat o vstup uživatele. Znovu 10 / 0 zadejte . Teď se zobrazí užitečnější zpráva. Uživatel je vyzván k zadání dalšího vstupu a program se dál normálně spouští.

    Snímek obrazovky Visual Studio 2019 Microsoft Visual Studio ladění zobrazující konečný výsledek po změnách

    Poznámka

    Při úpravách kódu v režimu ladění existuje riziko, že kód bude zastaralý. K tomu dochází v případě, že ladicí program stále běží ve vašem starém kódu a zatím ho ne aktualizoval vašimi změnami. Ladicí program zobrazí dialogové okno s informací, když k tomu dojde. Někdy může být nutné stisknutím klávesy F5 aktualizovat spuštěný kód. Konkrétně pokud uvnitř funkce provádíte změnu, zatímco je bod provádění uvnitř této funkce, budete muset od funkce odstoupit a pak se k ní znovu vrátit a získat aktualizovaný kód. Pokud to z nějakého důvodu nefunguje a zobrazí se chybová zpráva, můžete ladění zastavit kliknutím na červený čtverec na panelu nástrojů pod nabídkami v horní části integrovaného vývojového prostředí a pak znovu spustit ladění zadáním klávesy F5 nebo zvolením zelené šipky "přehrát" vedle tlačítka zastavení na panelu nástrojů.

    Vysvětlení zástupců pro spuštění a ladění

    • F5 (nebo Laděníspustit ladění) spustí relaci ladění, pokud ještě není aktivní, a program spustí, dokud se nedosáhne zarážky nebo program potřebuje uživatelský vstup. Pokud není potřeba žádný uživatelský vstup a není k dispozici žádná zarážka, program se ukončí a okno konzoly se po dokončení programu zavře. Pokud máte něco jako program "Hello World", použijte kombinaci kláves Ctrl+F5 nebo nastavte zarážku před stisknutím klávesy F5 a nechte okno otevřené.
    • Ctrl+F5 (nebo Spustitladění bez ladění)spustí aplikaci bez toho, aby přešla do režimu ladění. To je o něco rychlejší než ladění a okno konzoly zůstane otevřené po dokončení programu.
    • Klávesa F10 (označované jako Krok přes )umožňuje iterovat kódem, řádek po řádku a vizualizovat, jak se kód spustí a jaké hodnoty proměnných jsou v každém kroku provádění.
    • F11 (označované jako Krokovánís krokem do ) funguje podobně jako Krok přes stím rozdílem, že postupuje do všech funkcí s názvem na řádku provádění. Pokud například spuštěný řádek volá funkci, stisknutím klávesy F11 přesunete ukazatel do těla funkce, abyste mohli sledovat kód funkce spuštěný před návratem na řádek, na který jste začali. Stisknutím klávesy F10 přejdete na volání funkce a přejdete na další řádek. Volání funkce stále probíhá, ale program se nepozastaví, aby vám ukázal, co dělá.

Zavření aplikace

  • Pokud je stále spuštěná, zavřete okno konzoly aplikace kalkulačky.

Přidání správy zdrojového kódu Git

Teď, když jste vytvořili aplikaci, ji můžete chtít přidat do úložiště Git. Pomůžeme vám. Visual Studio usnadňuje tento proces pomocí nástrojů Gitu, které můžete použít přímo z integrovaného vývojového prostředí .NET.

Tip

Git je nejpoužívanějším moderním systémem pro řízení verzí, takže Git může být velmi užitečný, ať už jste profesionální vývojář nebo se učíte programovat. Pokud s Gitem začínáte, https://git-scm.com/ je web dobrým místem, kde začít. Najdete tam tahák, oblíbenou online knihu a videa Git Basics.

Pokud chcete ke Gitu přidružit svůj kód, začněte vytvořením nového úložiště Git, ve kterém se váš kód nachází. Jak na to:

  1. Ve stavovém řádku v pravém dolním rohu okna Visual Studio Přidatdo správy zdrojového kódu a pak vyberte Git.

    Snímek obrazovky s tlačítky správy zdrojového kódu Git pod Průzkumník řešení podoknem a zvýrazněnou tlačítkem Přidat do správy zdrojového kódu

  2. V dialogovém okně Create a Git repository (Vytvořit úložiště Git) se přihlaste GitHub.

    Snímek obrazovky s dialogem Vytvořit úložiště Git, kde se můžete přihlásit k GitHub

    Název úložiště se automaticky vyplní podle umístění vaší složky. Ve výchozím nastavení je nové úložiště soukromé, což znamená, že jste jediným, kdo k ní má přístup.

    Tip

    Ať už je vaše úložiště veřejné nebo soukromé, je nejlepší mít bezpečně uloženou vzdálenou zálohu kódu na GitHub. I když nepracujete s týmem, vzdálené úložiště vám váš kód zpracuje z libovolného počítače.

  3. Vyberte Create and Push (Vytvořit a nasaovat).

    Po vytvoření úložiště se na stavovém řádku zobrazí podrobnosti o stavu.

    Snímek obrazovky se stavový řádek v Průzkumník řešení v Visual Studio

    První ikona se šipkami ukazuje, kolik odchozích/příchozích potvrzení je ve vaší aktuální větvi. Tuto ikonu můžete použít k natažení všech příchozích potvrzení nebo k nasouání odchozích potvrzení. Můžete se také rozhodnout, že tato potvrzení zobrazíte jako první. Pokud to chcete udělat, vyberte ikonu a pak vyberte Zobrazit odchozí/příchozí.

    Druhá ikona s tužkou zobrazuje počet nepotrzené změny kódu. Výběrem této ikony můžete tyto změny zobrazit v okně Git Changes (Změny Gitu).

Další informace o tom, jak používat Git s vaší aplikací, najdete v dokumentaci ke Visual Studio verzínástroje .

Dokončená aplikace

Gratulujeme! Dokončili jste kód aplikace kalkulačky, zkončili a odladění a přidali ho do Visual Studio.

Další kroky

Další informace o Visual Studio pro C++

Obvyklým výchozím bodem pro programátora v jazyce C++ je aplikace "Hello, world!", která běží na příkazovém řádku. To je to, co vytvoříte v Visual Studio článku, a pak se přesuneme k něčemu náročnějším: aplikaci kalkulačky.

Požadavky

  • Musíte Visual Studio desktopový vývoj s nainstalovanou a spuštěnou úlohou C++. Pokud ještě není nainstalovaný, podívejte se na podporu instalace C++ v Visual Studio.

Vytvoření projektu aplikace

Visual Studio používá projekty k uspořádání kódu aplikace a řešení pro uspořádání projektů. Projekt obsahuje všechny možnosti, konfigurace a pravidla používané k vytváření aplikací. Spravuje také vztah mezi všemi soubory projektu a všemi externími soubory. Pokud chcete vytvořit aplikaci, nejprve vytvoříte nový projekt a řešení.

  1. Na panelu nabídek v Visual Studio zvolte SouborNový Project . Otevře se Project nový název.

  2. Na levém bočním panelu se ujistěte, Visual C++ vybraná možnost. Uprostřed zvolte Windows konzolová aplikace.

  3. V dolní části textového pole Název pojmenováte nový projekt CalculatorTutoriala pak zvolte OK.

    Dialogové okno Project nový

    Vytvoří se prázdná konzolová Windows C++. Konzolové aplikace používají Windows konzoly k zobrazení výstupu a přijetí uživatelského vstupu. V Visual Studio se otevře okno editoru s vygenerovaný kódem:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include "pch.h"
    #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
    

Ověření sestavení a spuštění nové aplikace

Šablona pro novou konzolovou aplikaci systému Windows vytvoří jednoduchou "Hello World" jazyka C++. V tomto okamžiku uvidíte, jak Visual Studio sestaví a spustí aplikace, které vytvoříte přímo z integrovaného vývojového prostředí.

  1. Projekt sestavíte tak, že v nabídce Sestavení zvolíte Sestavit řešení. V okně Výstup se zobrazí výsledky procesu sestavení.

    Snímek Visual Studio s oknem Výstup zobrazující výsledek procesu sestavení

  2. Pokud chcete kód spustit, zvolte na řádku nabídek Ladit, Spustit bez ladění.

    Snímek obrazovky Microsoft Visual Studio konzoly ladění zobrazující úspěšné spuštění kódu

    Otevře se okno konzoly a pak se spustí vaše aplikace. Když spustíte konzolovou aplikaci v Visual Studio, spustí váš kód a potom zobrazí "Stiskněte libovolnou klávesu, abyste mohli pokračovat." . .", abyste měli možnost zobrazit výstup. Gratulujeme! Vytvořili jste svou první konzolovou aplikaci "Hello, world!" v Visual Studio!

  3. Stisknutím klávesy zavřete okno konzoly a vraťte se Visual Studio.

Teď máte nástroje pro sestavení a spuštění aplikace po každé změně, abyste ověřili, že kód stále funguje podle očekávání. Později vám ukážeme, jak ho ladit, pokud ne.

Úprava kódu

Teď kód v této šabloně změníme na aplikaci kalkulačky.

  1. V souboru CalculatorTutorial.cpp upravte kód tak, aby odpovídal tomuto příkladu:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include "pch.h"
    #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
    

    Vysvětlení kódu:

    • Příkazy #include umožňují odkazovat na kód umístěný v jiných souborech. Někdy se může název souboru ocitovat v hranatých závorkách ( ); jindy je v uvozovkách <> (<>). Při odkazování na standardní knihovnu C++ se obecně používají hranaté závorky, zatímco uvozovky se používají pro jiné soubory.
    • Řádek (nebo v Visual Studio 2017 a starší) odkazuje na něco, co se označuje #include "pch.h"#include "stdafx.h" jako předkompilovaná hlavička. Často je používají profesionální programátoři ke zlepšení doby kompilace, ale jsou nad rámec tohoto kurzu.
    • Řádek říká kompilátoru, aby očekával, že se v tomto souboru budou používat věci ze standardní knihovny using namespace std; C++. Bez tohoto řádku by před každým klíčovým slovem z knihovny bylo třeba předcházet , aby bylo std:: možné vysvětlovat jeho rozsah. Například bez tohoto řádku by se každý odkaz na měl zapsat cout jako std::cout . Příkaz using se přidá, aby kód vypadal čistěji.
    • Klíčové cout slovo slouží k tisku na standardní výstup v jazyce C++. Operátor říká kompilátoru, aby do standardního výstupu poslal vše, co << je napravo od něj.
    • Klíčové slovo endl je jako klíč Enter. ukončí řádek a přesune kurzor na další řádek. Lepším postupem je umístit do řetězce (obsaženého znakem ") stejný postup, protože vyrovnávací paměť vždy vyprázdní a může to poškozovat výkon programu, ale protože se jedná o velmi malou aplikaci, používá se místo toho k lepší \nendlendl čitelnosti.
    • Všechny příkazy jazyka C++ musí konče středníkem a všechny aplikace jazyka C++ musí obsahovat main() funkci. Tato funkce je to, co program spouští na začátku. Aby bylo možné použít veškerý kód, main() musí být přístupný z .
  2. Pokud chcete soubor uložit, zadejte Ctrl+Snebo zvolte ikonu Uložit v horní části integrovaného vývojového prostředí (IDE), ikonu diskety na panelu nástrojů pod řádek nabídek.

  3. Pokud chcete aplikaci spustit, stiskněte Ctrl+F5 nebo přejděte do nabídky Ladit a zvolte Spustit bez ladění. Pokud se zobrazí automaticky otevírané okno s dotazem Tento projekt je ne aktuální,můžete vybrat Možnost Toto dialogové okno už nezovat a pak volbou Ano sestavit aplikaci. Mělo by se zobrazit okno konzoly, které zobrazuje text zadaný v kódu.

    Sestavte a spusťte aplikaci.

  4. Až skončíte, zavřete okno konzoly.

Přidání kódu pro matematické výpočty

Je čas přidat matematickou logiku.

Přidání třídy Calculator

  1. Přejděte do Project a zvolte Přidat třídu. Do textového pole Název třídy zadejte Kalkulačka. Vyberte OK. Do projektu se přidávají dva nové soubory. Pokud chcete uložit všechny změněné soubory najednou, stiskněte Ctrl+Shift+S. Jedná se o klávesovou zkratku pro souborUložit vše. Kromě tlačítka Uložit vše je k dispozici také tlačítko panelu nástrojů, které je ikona dvou disketových jednotek, která se nachází vedle tlačítka Uložit. Obecně platí, že je vhodné ukládat vše často, takže při ukládání nezmeškáte žádné soubory.

    Krátké video znázorňující, jak uživatel otevře dialogové okno Přidat třídu, do pole Název třídy zadá Kalkulačka a vybere O K.

    Třída je jako podrobný plán pro objekt, který něco dělá. V tomto případě definujeme kalkulačku a způsob, jak by měla fungovat. Průvodce přidáním třídy, který jste použili výše, vytvořil soubory .h a .cpp, které mají stejný název jako třída . Úplný seznam souborů projektu můžete zobrazit v okně Průzkumník řešení, které je viditelné na straně integrovaného vývojového prostředí.) Pokud se okno nezobrazí, můžete ho otevřít z řádku nabídek: zvolte ZobrazitPrůzkumník řešení .

    Snímek obrazovky Průzkumník řešení s projektem Calculator Tutorial (Kurz kalkulačky)

    V editoru byste teď měli mít otevřené tři karty: CalculatorTutorial.cpp,Calculator.ha Calculator.cpp. Pokud omylem jeden z nich zavřete, můžete ho znovu otevřít tak, že na něj dvakrát kliknete v Průzkumník řešení okně.

  2. V souboru Calculator.hodeberte vygenerované řádky a , protože je tady nebudete ~Calculator(); potřebovat. Dále přidejte následující řádek kódu, aby soubor vypadal takto:

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

    Vysvětlení kódu

    • Řádek, který jste přidali, deklaruje novou funkci s názvem , kterou použijeme ke spuštění matematických operací pro sčítání, odčítání, násobení a Calculate dělení.
    • Kód jazyka C++ je uspořádaný do souborů hlaviček (.h) a zdrojových souborů (.cpp). Různé kompilátory podporují několik dalších přípon souborů, ty jsou ale hlavní, o kterých je dobré vědět. Funkce a proměnné jsou obvykledeklarovány , to znamená, že jsou uvedeny název a typ, v souborech hlaviček a implementovány nebodán definicí ve zdrojových souborech. Pro přístup ke kódu definovanému v jiném souboru můžete použít , kde 'filename.h' je název souboru, který deklaruje proměnné nebo funkce, #include "filename.h" které chcete použít.
    • Dva řádky, které jste odstranili, deklarované jako konstruktor a destruktor třídy. Pro jednoduchou třídu, jako je tato, je kompilátor vytvoří za vás a jejich použití přesahuje rozsah tohoto kurzu.
    • Osvědčeným postupem je uspořádat kód do různých souborů na základě toho, co dělá, takže později snadno najdete kód, který budete potřebovat. V našem případě definujeme třídu odděleně od souboru obsahujícího funkci, ale plánujeme odkazovat Calculatormain() na třídu v Calculatormain() .
  3. Pod se zobrazí zelený podtržení Calculate podtržením. Je to proto, že jsme funkci nedefinovali Calculate v souboru .cpp. Najeďte myší na slovo, klikněte na žárovku, která se zobrazí, a v souboru Calculator.cpp zvolte Create definition of 'Calculate' (Vytvořitdefinici funkce Calculate). Zobrazí se automaticky otevírané okno s náhledem změny kódu provedené v druhém souboru. Kód byl přidán do souboru Calculator.cpp.

    Krátké video zobrazující uživatele s výběrem možnosti Create definition of Calculate in Calculator C P P (Vytvořit definici výpočtu v kalkulačce C P P).

    V současné době vrátí pouze hodnotu 0,0. Pojďme to změnit. Stisknutím klávesy Esc zavřete automaticky otevírané okno.

  4. V okně editoru přepněte na soubor Calculator.cpp. Odeberte Calculator()~Calculator() oddíly a (stejně jako v souboru .h) a přidejte do souboru následující Calculate() kód:

    #include "pch.h"
    #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;
        }
    }
    

    Vysvětlení kódu

    • Funkce spotřebovává číslo, operátor a druhé číslo a pak s čísly provede Calculate požadovanou operaci.
    • Příkaz switch zkontroluje, který operátor byl poskytnut, a provede pouze případ odpovídající této operaci. Výchozí hodnota: Případ je záložní pro případ, že uživatel zadá operátor, který není přijatý, takže se program nenaruší. Obecně je nejlepší zpracovat neplatný uživatelský vstup elegantnějším způsobem, ale toto je nad rámec tohoto kurzu.
    • Klíčové double slovo označuje typ čísla, který podporuje desetinná čísla. Kalkulačka tak dokáže zpracovat desítkovou matematiku i celočíselnou matematiku. Funkce musí vždy vrátit takové číslo, protože na začátku kódu (označuje návratový typ funkce), což je důvod, proč vracíme Calculate 0,0 i ve výchozím double případě.
    • Soubor .h deklaruje prototypfunkce , který kompilátoru předem říká, jaké parametry vyžaduje a jaký návratový typ od něj očekává. Soubor .cpp obsahuje všechny podrobnosti implementace funkce.

Pokud v tomto okamžiku znovu sestavíte a spustíte kód, po provedení operace se stále ukončí. V dalším kroku upravíte funkci main tak, aby provádět nějaké výpočty.

Volání členských funkcí třídy Calculator

  1. Teď aktualizujeme funkci main v main

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include "pch.h"
    #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;
    }
    

    Vysvětlení kódu

    • Vzhledem k tomu, že programy jazyka C++ vždy začínají ve funkci , musíme odtud volat náš druhý main() kód, takže #include je potřeba příkaz .
    • Některé počáteční proměnné , , a jsou deklarovány pro uložení prvního čísla, druhého čísla, operátoru a xyoperresult konečného výsledku. Vždy je vhodné jim poskytnout určité počáteční hodnoty, abyste se vyhnuli nedefinovanému chování, což se děje tady.
    • Řádek Calculator c; deklaruje objekt s názvem "c" jako instanci Calculator třídy. Samotná třída je jenom podrobný plán toho, jak kalkulačky fungují. Objekt je konkrétní kalkulačka, která matematické výpočty dělá.
    • Příkaz while (true) je smyčka. Kód ve smyčce se stále provádí znovu a znovu, dokud podmínka uvnitř smyčky () platí. Vzhledem k tomu, že podmínka je jednoduše uvedená true jako , je vždy pravdivá, takže smyčka běží navždy. Chcete-li program zavřít, musí uživatel ručně zavřít okno konzoly. Jinak program vždy čeká na nový vstup.
    • Klíčové cin slovo slouží k přijetí vstupu od uživatele. Tento vstupní datový proud je dostatečně inteligentní, aby zpracuje řádek textu zadaný v okně konzoly a umístěte ho do každé uvedené proměnné v uvedeném pořadí za předpokladu, že uživatelský vstup odpovídá požadované specifikaci. Tento řádek můžete upravit tak, aby přijímal různé typy vstupu, například více než dvě čísla, i když by bylo potřeba aktualizovat i funkci, aby to Calculate() zvládla.
    • Výraz c.Calculate(x, oper, y); volá funkci Calculate definovanou dříve a poskytuje zadané vstupní hodnoty. Funkce pak vrátí číslo, které se uloží do result .
    • Nakonec se vytiskne na konzole, aby uživatel viděl result výsledek výpočtu.

Znovu sestavte a otestujte kód.

Teď je čas program znovu otestovat, abyste se ujistili, že všechno funguje správně.

  1. Stisknutím kláves Ctrl+F5 aplikaci znovu sestavíte a spustíte.

  2. Zadejte 5 + 5 a stiskněte 5 + 5 Ověřte, že výsledek je 10.

    Snímek obrazovky Microsoft Visual Studio konzoly ladění zobrazující správný výsledek 5 + 5

Ladění aplikace

Vzhledem k tomu, že uživatel může do okna konzoly zadat cokoli, pojďme se ujistit, že kalkulačka zpracovává vstup podle očekávání. Místo spuštění programu ho pojďme ladit, abychom mohli podrobně zkontrolovat, co dělá.

Spuštění aplikace v ladicím programu

  1. Nastavte zarážku na result = c.Calculate(x, oper, y); řádku hned poté, co byl uživatel požádán o vstup. Zarážku nastavíte kliknutím vedle řádku v šedém svislém pruhu podél levého okraje okna editoru. Zobrazí se červená tečka.

    Krátké video vizuálních studií znázorňující uživatele, který vytváří červenou tečku představující zarážku

    Když teď program ladíme, pozastaví se provádění vždy na tomto řádku. Už máme hrubou představu, že program funguje v jednoduchých případech. Vzhledem k tomu, že pokaždé nechcete pozastavit provádění, nastavte zarážku podmíněnou.

  2. Klikněte pravým tlačítkem na červenou tečku, která představuje zarážku, a zvolte Podmínky. Do textového pole podmínky zadejte (y == 0) && (oper == '/') . Až budete hotovi, zvolte tlačítko Zavřít. Podmínka se uloží automaticky.

    Krátké video z Visual Studio roku 2019, ve Nastavení oddíl Breakpoint (Zarážka) a nastavení podmíněné zarážky

    Teď pozastavíme provádění na zarážce, konkrétně v případě, že dojde k pokusu o dělení o 0.

  3. Pokud chcete program ladit, stiskněte klávesu F5nebo zvolte tlačítko místní Windows panelu nástrojů ladicího programu, které má ikonu zelené šipky. Pokud v aplikaci konzoly zadáte něco jako 5 až 0, program se bude chovat normálně a bude dál běžet. Pokud ale napíšete "10 / 0", pozastaví se na zarážce. Mezi operátor a čísla můžete dokonce umístit libovolný počet mezer. cin je dostatečně inteligentní, aby parsovat vstup odpovídajícím způsobem.

    Krátké video vizuálních studií, které ukazuje, že se program pozastavil na podmíněné zarážce

Užitečná okna v ladicím programu

Při každém ladění kódu si můžete všimnout, že se zobrazí některá nová okna. Tato okna vám pomohou s laděním. Podívejte se na okno Automatické funkce. V okně Automatické hodnoty se zobrazují aktuální hodnoty proměnných, které se použily alespoň tři řádky před a až do aktuálního řádku.

Okno Automatické funkce.

Pokud chcete zobrazit všechny proměnné z této funkce, přepněte do okna Místní hodnoty. Hodnoty těchto proměnných můžete ve skutečnosti upravovat během ladění, abyste viděli, jaký vliv by měly na program. V tomto případě je necháme na sobě.

Snímek obrazovky s oknem Místních hodnoty

Můžete také jen najet myší na proměnné v samotném kódu a zobrazit jejich aktuální hodnoty, kde je provádění aktuálně pozastavené. Nejprve klikněte na okno editoru a ujistěte se, že je fokus.

Krátké video zobrazující popis, který se zobrazí s hodnotou proměnné

Pokračování v ladění

  1. Žlutá čára vlevo zobrazuje aktuální bod provádění. Aktuální řádek volá Calculate , takže stisknutím Calculatepřetáhněte krok do funkce . Ocitnete se v těle Calculate funkce. Buďte opatrní s krokovat s ; Pokud to budete dělat příliš mnoho, můžete ztrácet spoustu času. Jde do libovolného kódu, který používáte na řádku, na který se nachátáte, včetně standardních funkcí knihovny.

  2. Teď, když je bod provádění na začátku funkce, přejděte stisknutím klávesy F10 na další řádek v Calculate provádění programu. Calculate F10 se také označuje jako Krok přes. Krok přes můžete použít k přechodu z řádku na řádek, aniž byste se pouštěli do podrobností o tom, co se děje v jednotlivých součástech řádku. Obecně platí, že byste měli místo krokovat s krokem dopoužít krok přes , pokud nechcete hlouběji proniknout do kódu, který se volá od jiného místa (jako jste to udělali pro dosažení těla ).

  3. Pokračujte použitím klávesy F10 ažpo krok přes každý řádek, dokud se nevrátíte k funkci v druhém souboru a nezastavíte se na řádku.

    Vystupte z funkce Výpočet a kontrola výsledku.

    Vypadá to, že program dělá to, co se očekává: vezme první číslo a vydělí ho druhým. Na řádku cout najeďte myší na proměnnou nebo result se podívejte v okně resultcout hodnoty. Uvidíte, že její hodnota je uvedená jako inf, což nevypadá správně, takže ji opravme. Výstupem řádku je pouze hodnota uložená v , takže když pomocí coutresultcoutposunete o další řádek dopředu, zobrazí se okno konzoly:

    Snímek obrazovky Microsoft Visual Studio konzoly ladění zobrazující výsledek dělení nulou

    K tomuto výsledku dochází proto, že dělení nulou není definováno, takže program nemá číselnou odpověď na požadovanou operaci.

Oprava chyby "dělení nulou"

Pojďme se vypořádat s dělením nulou elegantnější, aby uživatel porozuměl problému.

  1. V souboru CalculatorTutorial.cpp proveďte následující změny. (Díky funkci ladicího programu s názvem Upravit a pokračovat můžete nechat program spuštěný při úpravách):

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include "pch.h"
    #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. Teď jednou stiskněte klávesu F5. Provádění programu pokračuje až do doby, než se musí pozastavit a požádat o vstup uživatele. Znovu 10 / 0 zadejte . Teď se zobrazí užitečnější zpráva. Uživatel je vyzván k zadání dalšího vstupu a program se dál normálně spouští.

    Krátké video konzoly Microsoft Visual Studio ladění s konečným výsledkem po provedení změn.

    Poznámka

    Při úpravách kódu v režimu ladění existuje riziko, že kód bude zastaralý. K tomu dochází v případě, že ladicí program stále běží ve vašem starém kódu a zatím ho ne aktualizoval vašimi změnami. Ladicí program zobrazí dialogové okno s informací, když k tomu dojde. Někdy může být nutné stisknutím klávesy F5 aktualizovat spuštěný kód. Konkrétně pokud uvnitř funkce provádíte změnu, zatímco je bod provádění uvnitř této funkce, budete muset od funkce odstoupit a pak se k ní znovu vrátit a získat aktualizovaný kód. Pokud to z nějakého důvodu nefunguje a zobrazí se chybová zpráva, můžete ladění zastavit kliknutím na červený čtverec na panelu nástrojů pod nabídkami v horní části integrovaného vývojového prostředí a pak znovu spustit ladění zadáním klávesy F5 nebo zvolením zelené šipky "přehrát" vedle tlačítka zastavení na panelu nástrojů.

    Vysvětlení zástupců pro spuštění a ladění

    • F5 (nebo Laděníspustit ladění) spustí relaci ladění, pokud ještě není aktivní, a program spustí, dokud se nedosáhne zarážky nebo program potřebuje uživatelský vstup. Pokud není potřeba žádný uživatelský vstup a není k dispozici žádná zarážka, program se ukončí a okno konzoly se po dokončení programu zavře. Pokud máte něco jako program "Hello World", použijte kombinaci kláves Ctrl+F5 nebo nastavte zarážku před stisknutím klávesy F5 a nechte okno otevřené.
    • Ctrl+F5 (nebo Spustitladění bez ladění)spustí aplikaci bez toho, aby přešla do režimu ladění. To je o něco rychlejší než ladění a okno konzoly zůstane otevřené po dokončení programu.
    • Klávesa F10 (označované jako Krok přes )umožňuje iterovat kódem, řádek po řádku a vizualizovat, jak se kód spustí a jaké hodnoty proměnných jsou v každém kroku provádění.
    • F11 (označované jako Krokovánís krokem do ) funguje podobně jako Krok přes stím rozdílem, že postupuje do všech funkcí s názvem na řádku provádění. Pokud například spuštěný řádek volá funkci, stisknutím klávesy F11 přesunete ukazatel do těla funkce, abyste mohli sledovat kód funkce spuštěný před návratem na řádek, na který jste začali. Stisknutím klávesy F10 přejdete na volání funkce a přejdete na další řádek. Volání funkce stále probíhá, ale program se nepozastaví, aby vám ukázal, co dělá.

Zavření aplikace

  • Pokud je stále spuštěná, zavřete okno konzoly aplikace kalkulačky.

Gratulujeme! Dokončili jste kód aplikace kalkulačky a sestavíte a odladíte ho v Visual Studio.

Další kroky

Další informace o Visual Studio pro C++