Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den vanliga startpunkten för en C++-programmerare är ett "Hello, world!"-program som körs på kommandoraden. Du börjar med det i den här artikeln och går sedan vidare till något mer utmanande: en kalkylatorapp.
Förutsättningar
- Visual Studio med Skrivbordsutveckling med C++ arbetsuppgift installerad och körs på din dator. Information om hur du installerar det finns i Installera C++-stöd i Visual Studio.
- Den här självstudien visar en funktion som kallas "edit and continue"-funktionen som gör att du kan göra ändringar i koden medan appen körs. Om du vill aktivera redigering och fortsätta väljer du Verktygsalternativ>>Felsökning>Allmänt på huvudmenyn och ser till att Kräv källfiler för att exakt matcha den ursprungliga versionen är markerat.
Skapa ditt appprojekt
Visual Studio använder projekt för att organisera koden för en app och lösningar för att organisera ett eller flera projekt. Ett projekt innehåller alla alternativ, konfigurationer och regler som används för att skapa en app. Den hanterar också relationen mellan alla projektets filer och eventuella externa filer. Skapa din app genom att först skapa ett nytt projekt och en ny lösning.
Starta Visual Studio – dialogrutan Start i Visual Studio visas. Välj Skapa ett nytt projekt för att komma igång.
Dialogrutan har alternativ för att klona en lagringsplats, öppna ett projekt eller en lösning, öppna en lokal mapp och skapa ett nytt projekt."
I dialogrutan Skapa ett nytt projekt anger du språklistrutan till C++, anger plattformslistrutan till Windows, väljer Konsolapp i listan över projekttyper och väljer sedan Nästa.
Listrutan för språk är inställd på C++, plattformslistrutan är inställd på Windows och projekttyper som Tomt projekt, Konsolapp, CMake-projekt, Windows Desktop-guiden och så vidare, visas i listan över projekttyper."
Viktigt!
Kontrollera att du väljer C++-versionen av mallen Konsolapp . Den har taggarna C++, Windows och Konsol och ikonen har "++" i hörnet.
I dialogrutan Konfigurera det nya projektet väljer du textrutan Projektnamn , ger det nya projektet namnet CalculatorTutorial och väljer sedan Skapa.
En tom "Hello World"-konsolapplikation för C++ i Windows har skapats. Konsolprogram använder ett Windows-konsolfönster för att visa utdata och acceptera användarindata. I Visual Studio öppnas ett redigeringsfönster och visar den genererade koden:
// 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
Kontrollera att din nya app bygger och körs
Mallen för ett nytt Windows-konsolprogram skapar en enkel C++ "Hello World"-app. Nu kan du se hur Visual Studio skapar och kör de appar som du skapar direkt från IDE:t.
Om du vill skapa projektet väljer du Skapa lösning på menyn Skapa . Fönstret Utdata visar resultatet av byggprocessen.
Om du vill köra koden går du till menyraden och väljer Felsöka>Start utan att felsöka (Ctrl+F5).
Ett konsolfönster öppnas och appen körs i den.
När du startar en konsolapp i Visual Studio kör den koden och skriver sedan ut "Tryck på valfri tangent för att stänga det här fönstret . . " för att ge dig en chans att se utdata.
Grattis! Du skapade din första konsolapp "Hello, world!" i Visual Studio!
Tryck på en tangent för att stänga konsolfönstret och återgå till Visual Studio.
Nu har du verktygen för att skapa och köra din app efter varje ändring för att kontrollera att koden fortfarande fungerar som förväntat. Senare visar vi hur du felsöker det om det inte fungerar.
Redigera koden
Nu ska vi ändra koden i den här mallen så att den blir en kalkylatorapp.
Ersätt innehållet i
CalculatorTutorial.cpp
filen med följande kod så att den matchar det här exemplet:// 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
Förstå koden:
- Satsen
#include
importerar kod från andra filer. Ibland kan du se ett filnamn omgivet av vinkelparenteser som<iostream>
. Vinkelparenteserna instruerar kompilatorn att leta efter huvudfilen först i standardsystemkatalogerna, och om den inte hittas ska den titta i kataloger som är specifika föriostream
projektet. Andra gånger kan du se ett filnamn omgivet av citattecken som"someHeader.h"
. Citattecken instruerar kompilatorn att hoppa över att titta i standardsystemkatalogerna och i stället bara titta i kataloger som är specifika för projektet. -
using namespace std;
Instruerar kompilatorn att förvänta sig att kod från C++-standardbiblioteket ska användas i den här filen. Utan den här raden måste varje nyckelord från biblioteket föregås avstd::
för att ange dess omfång. Utan den raden skrivs till exempel varje referens tillcout
somstd::cout
. -instruktionenusing
läggs till för att göra det enklare att komma åt kod i ett annat namnområde. - Nyckelordet
cout
används för att skriva ut till standardutdata i C++. Operatorn<<
uppmanar kompilatorn att skicka det som är till höger om den till standardutdata. - Nyckelordet
endl
är som returnyckeln. Det avslutar raden och flyttar markören till nästa rad. Det är en bättre metod att placera en\n
inuti strängen (som finns i""
) för att göra samma sak eftersomendl
alltid tömer bufferten som kan skada programmets prestanda. Men eftersom det här är en mycket liten appendl
används den i stället. - Alla C++-instruktioner måste sluta med semikolon och alla C++-program måste innehålla en
main()
funktion. Den här funktionen är vad programmet kör i början. All kod måste vara tillgänglig frånmain()
för att kunna användas.
- Satsen
Spara filen genom att trycka på Ctrl+S eller välja diskettikonen i verktygsfältet under menyraden.
Om du vill köra programmet trycker du på Ctrl+F5 eller går till felsökningsmenyn och väljer Starta utan felsökning. Du bör se ett konsolfönster som ser ut så här.
Stäng konsolfönstret när du är klar.
Lägg till kod för att göra lite matematik
En klass är som en skiss för ett objekt som gör något. I det här fallet definierar vi en kalkylatorklass som ska innehålla matematiklogik.
Lägga till en kalkylatorklass
Gå till menyn Projekt och välj Lägg till klass. I redigeringsrutan Klassnamn anger du Kalkylator. Välj OK.
Fältet klassnamn innehåller textkalkylatorn. Filfältet .h innehåller Calculator.h. Filfältet .cpp innehåller Calculator.cpp. Basklassfältet är tomt. Alternativen för infogade och hanterade är avmarkerade.
Två nya filer läggs till i projektet. Om du vill spara alla dina ändrade filer samtidigt trycker du på Ctrl+Skift+S. Det är ett kortkommando för Fil>. Det finns också en verktygsfältsknapp för Spara alla, en ikon på två diskettdiskar, som finns bredvid knappen Spara . I allmänhet är det bra att göra Spara alla ofta, så att du inte missar att spara några ändringar.
Guiden Lägg till klass skapar
.h
och.cpp
filer som har samma namn som klassen. Du kan se en fullständig lista över dina projektfiler i Solution Explorer-fönstret , som visas på sidan av IDE. Om fönstret inte visas öppnar du det från menyraden via Visa>Solution Explorer.Självstudieprojektet för kalkylatorn har en nod för huvudfiler som innehåller Calculator.h. En nod för källfiler innehåller Calculator.cpp och CalculatorTutorial.cpp. Noder för referenser, externa beroenden och resursfiler är synliga men stängda.
Du kan öppna en fil genom att dubbelklicka på den i Solution Explorer-fönstret . Dubbelklicka på
Calculator.h
för att öppna den.Ersätt innehållet i
Calculator.h
med följande kod så att filen nu ser ut så här:#pragma once class Calculator { public: double Calculate(double x, char oper, double y); };
Förstå koden
- Den här koden deklarerar en ny funktion med namnet
Calculate
, som hanterar matematiska åtgärder för addition, subtraktion, multiplikation och division. - C++-kod ordnas i huvudfiler (
.h
) och källfiler (.cpp
). Vissa andra filnamnstillägg stöds av olika kompilatorer, men dessa är de viktigaste filnamnstilläggen att känna till. Funktioner och variabler deklareras normalt, d.v.s. med ett namn och en typ, i huvudfiler och implementeras, eller ges en definition, i källfiler. Om du vill komma åt kod som definierats i en annan fil kan du använda#include "filename.h"
, därfilename.h
är namnet på filen som deklarerar de variabler eller funktioner som du vill använda. - Det är bra att organisera koden i olika filer baserat på vad den gör, så det är enkelt att hitta den kod du behöver senare. I vårt fall definierar
Calculator
vi klassen separat från filen som innehållermain()
funktionen, men vi planerar att refereraCalculator
till klassen imain()
.
- Den här koden deklarerar en ny funktion med namnet
En grön squiggle visas under
Calculate
eftersom ävenCalculate
om funktionen hardeklarerats är den inte definierad. Hovra överCalculate
, klicka på nedåtpilen på skruvmejselikonen och välj Skapa definition av "Beräkna" iCalculator.cpp
.Den här koden läggs till i
Calculator.cpp
:Definitionen av funktionen är: double Calculator::Calculate( double x, char oper, double y) { return 0.0; }
För närvarande returnerar den bara 0,0. Vi ändrar på det.
Växla till
Calculator.cpp
filen i redigeringsfönstret. Ersätt innehållet iCalculator::Calculate(double x, char oper, double y)
med: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; } }
Förstå koden
- Funktionen
Calculate
tar ett tal, en operator och ett andra tal. Sedan utför den begärda åtgärden på de två talen. - Utsagan
switch
kontrollerar vilken operator som har angetts och kör det fall som motsvarar den åtgärden. Situationendefault:
är en reservlösning om användaren skriver en operator som inte hanteras av någon av de tidigarecase
uttrycken. Det är bäst att hantera ogiltiga användarindata på ett mer elegant sätt, men det ligger utanför omfattningen för den här handledningen. - Nyckelordet
double
anger en typ av tal som stöder decimaler. Den här typen av tal kallas ett flyttalsnummer ochdouble
innebär ett flyttalnummer som har extra precision. På så sätt kan kalkylatorn hantera både decimal matematik och heltalsmatematik. FunktionenCalculate
måste alltid returnera ett flyttal med dubbel precision på grund avdouble
i början av koden (som anger funktionens returtyp), vilket är anledningen till att vi returnerar 0,0 i standardfallet. - Filen
.h
deklarerar funktionsprototypen, som talar om för kompilatorn i förväg vilka parametrar den behöver och vilken returtyp som ska förväntas av den. Filen.cpp
innehåller all implementeringsinformation om funktionen.
- Funktionen
Om du skapar och kör koden igen nu avslutas den omedelbart efter att du har frågat vilken åtgärd som ska utföras. Ändra funktionen så att den main
utför flera beräkningar.
Anropa klassmedlemsfunktionerna Calculator
Uppdatera funktionen i
main
enligt följande iCalculatorTutorial.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; }
Förstå koden
- Eftersom C++-program alltid startar vid
main()
funktionen måste vi anropa vår andra kod därifrån, så det krävs en#include
instruktion för att göra koden synlig för vårmain()
funktion. - Variablerna
x
,y
,oper
ochresult
deklareras för att lagra det första talet, det andra talet, operatorn respektive slutresultatet. Det är alltid bra att ge dem några inledande värden för att undvika odefinierat beteende, vilket är vad som görs här. - Raden
Calculator c;
deklarerar ett objekt med namnetc
som en instans avCalculator
klassen. Själva klassen är bara en skiss för hur kalkylatorer fungerar. -objektet är den specifika kalkylatorn som utför matematiken. - Satsen
while (true)
är en loop. Koden i loopen körs om och om igen så länge villkoret i()
är sant. Eftersom villkoret helt enkelt anges somtrue
är det alltid sant, så loopen körs för alltid. Om du vill stänga programmet måste användaren stänga konsolfönstret manuellt. Annars väntar programmet alltid på nya indata. - Nyckelordet
cin
accepterar indata från användaren. Indataströmmen är tillräckligt smart för att bearbeta en textrad som anges i konsolfönstret och placera den i var och en av de variabler som anges i ordning. - Uttrycket
c.Calculate(x, oper, y);
anropar funktionenCalculate
som definierats tidigare och tillhandahåller de angivna indatavärdena och den begärda åtgärden. Funktionen returnerar sedan ett tal som lagras iresult
. -
result
Slutligen skrivs ut till konsolen och användaren ser resultatet av beräkningen.
- Eftersom C++-program alltid startar vid
Skapa och testa koden igen
Testa programmet igen för att se till att allt fungerar korrekt.
Tryck på Ctrl+F5 för att återskapa och starta appen.
Ange
5+5
och tryck på Retur. Kontrollera att resultatet är 10.Appen matar ut meddelandet: Ange den åtgärd som ska utföras. Format: a+b | a-b | a*b | a/b. Användaren angav 5+5. Appens utdata: Resultatet 5+5 är: 10
Stoppa programmet genom att stänga konsolfönstret.
Felsöka appen
Eftersom användaren kan skriva in allt i konsolfönstret ska vi se till att kalkylatorn hanterar oväntade indata. I stället för att köra programmet ska vi felsöka det så att vi kan kontrollera vad det gör steg för steg.
Kör appen i felsökningsprogrammet
I
CalcuatorTutorial.cpp
sätter du en brytpunkt på raden:result = c.Calculate(x, oper, y);
. Om du vill ange brytpunkten klickar du bredvid raden i det grå lodräta fältet längs redigeringsfönstrets vänstra kant så att en röd punkt visas.Nu när vi felsöker programmet pausas körningen på den raden. Vi har redan en grov idé om att programmet fungerar för enkla fall. Eftersom vi inte vill pausa körningen varje gång vi anropar
Calculate()
, ska vi göra brytpunkten villkorlig.Högerklicka på den röda punkt som representerar brytpunkten och välj Villkor. I redigeringsrutan för villkoret anger du
(y == 0) && (oper == '/')
. Välj knappen Stäng för att spara brytpunktsvillkoret.Brytpunkten är på raden: result = c punkt Beräkna ( x, oper, y). "Villkor..." Alternativet Villkor är markerat. Listrutan Villkor är inställd på "Villkorsuttryck". Villkorslistrutan är inställd på "Är sant". Villkoret är inställt på y == 0 && oper == '/'.
Nu pausar körningen vid brytpunkten när appen försöker dividera med 0.
Om du vill felsöka programmet trycker du på F5 eller väljer den lokala windows felsökningsprogrammets verktygsfältsknapp som har den gröna pilikonen. Om du anger något i stil med "5–0" i konsolappen fungerar programmet normalt och fortsätter att köras. Men om du skriver "10/0" pausas den vid brytpunkten. Du kan placera valfritt antal blanksteg mellan operatorn och talen:
cin
är tillräckligt smart för att parsa indata på rätt sätt.
Användbara fönster i felsökningsprogrammet
När du felsöker koden kan det hända att vissa nya fönster visas. Dessa fönster kan hjälpa dig att felsöka. Ta en titt på Autos-fönstret. Fönstret Autos visar de aktuella värdena för variabler som används minst tre rader före och upp till den aktuella raden. Om du inte ser fönstret Autos väljer du Felsöka>Windows>Autos på huvudmenyn.
Värdet för oper är 47 '/', resultatet är 5, x är 10 och y är 0.
Om du vill se alla variabler från den funktionen växlar du till fönstret Lokal . Eftersom det här är en liten funktion visar fönstret Autos and Locals samma variabler. Men du kan ändra värdena för dessa variabler i fönstret Lokala under felsökning för att se vilken effekt de skulle ha på programmet. I det här fallet lämnar vi dem ensamma. Öppna fönstret Lokalt genom att välja Lokal längst ned i fönstret Autos eller genom att välja på huvudmenyn Felsöka>Windows>Locals.
Värdet för oper är 47 "/", resultatet är 0, x är 10 och y är 0.
Du kan också hovra över variabler i koden för att se deras aktuella värden vid den punkt där körningen för närvarande pausas. Kontrollera att redigeringsfönstret är i fokus genom att klicka på det först.
Fortsätt felsökningen
Den gula pilen till vänster visar den aktuella exekveringspunkten. Den aktuella raden anropar
Calculate
, så tryck på F11 för att stega in i funktionen. Nu kör du kod i kroppen avCalculate
-funktionen. Var försiktig med Step Into eftersom den kliver in i vilka funktioner som helst på den rad där du befinner dig, inklusive funktioner från standardbiblioteket. Det är bra att gå in i standardbiblioteket, men du kanske är mer intresserad av att fokusera på din kod i stället för bibliotekskod.Nu när exekveringspunkten är i början av
Calculate
-funktionen, trycker du på F10 för att gå till nästa rad i programmet. F10 kallas även Step Over. Du kan använda Step Over för att flytta från rad till rad, utan att gå in på detaljer om vad som händer i varje del av raden. I allmänhet bör du använda Step Over i stället för Step Into om du inte vill fördjupa dig i kod som anropas från någon annanstans (som du gjorde för att nå brödtextenCalculate
i ).Fortsätt att använda F10 för att stega över varje rad tills du kommer tillbaka till
main()
funktionen i den andra filen och stoppa påcout
raden.Programmet gör vad som förväntas: det tar det första talet och delar det med det andra.
cout
Hovra över variabelnresult
på linjen eller ta en titt påresult
i fönstret Autos. Dess värde ärinf
, vilket inte ser rätt ut.Den aktuella instruktionen i felsökningsprogrammet är cout << "Result is: " << result << endl; I fönstret Autos är resultatet inf.
Vi fixar det. Raden
cout
matar ut det värde som lagras iresult
, så när du går en rad framåt med F10 visas konsolfönstret:Appens utdata: Ange den åtgärd som ska utföras. Format: a+b | a-b | a*b | a/b. Användaren angav 5–0. Appens utdata: Resultatet är: 5. Användaren angav 10/0. Appens utdata: Resultatet är: inf
Det här resultatet beror på att divisionen med noll är odefinierad, så programmet har inget numeriskt svar för den begärda åtgärden.
Åtgärda felet "dividera med noll"
Nu ska vi hantera division med noll mer smidigt så att det är lättare för användaren att förstå problemet.
Gör följande ändringar i
CalculatorTutorial.cpp
. Du kan låta programmet köras medan du redigerar, tack vare en felsökningsfunktion med namnet Redigera och Fortsätt. Lägg till enif
instruktion som följercin >> x >> oper >> y;
för att söka efter division med noll och skicka ett meddelande till användaren om det händer. Annars skrivs resultatet ut.// 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; }
Tryck på F5 en gång. Programkörningen fortsätter tills den måste pausas för att be om användarindata. Ange
10 / 0
igen. Nu skrivs ett mer användbart meddelande ut. Användaren uppmanas att ange mer indata och programmet fortsätter att köras normalt.Konsolfönstret visar två rader: 10 /0 Resultatet är: inf, följt av 10/0 Matematiskt fel: Försök att dividera med noll.
Anmärkning
När du redigerar kod i felsökningsläge finns det en risk att koden blir inaktuell. Detta inträffar när felsökaren fortfarande kör din gamla kod och ännu inte har uppdaterat den med dina ändringar. Felsökningsprogrammet visar en dialogruta som informerar dig när detta händer. Ibland kan du behöva trycka på F5 för att uppdatera koden som körs. Om du gör en ändring i en funktion medan exekveringspunkten finns i den funktionen måste du stiga ut ur funktionen och sedan in igen för att hämta den uppdaterade koden. Om det inte fungerar och du ser ett felmeddelande kan du sluta felsöka genom att klicka på den röda rutan i verktygsfältet under menyerna överst i IDE och sedan börja felsöka igen genom att ange F5 eller genom att välja den gröna uppspelningspilen bredvid stoppknappen i verktygsfältet.
En annan orsak till att redigering och fortsätt kan misslyckas är om du ser ett meddelande med texten "Kräv att källfilerna exakt matchar den ursprungliga versionsinställningen under Felsöka> alternativ–>Allmänt måste vara aktiverat..." Du kan åtgärda detta genom att välja Verktygsalternativ>>Felsöka>Allmänt på huvudmenyn och se till att Kräv att källfilerna exakt matchar den ursprungliga versionen är markerat.
Förstå genvägarna för att köra och debugga
- F5, eller Felsökning>Starta felsökning, startar en felsökningssession, om en inte redan är aktiv, och kör programmet tills en brytpunkt har träffats eller programmet behöver användarindata. Om ingen användarinmatning behövs och ingen brytpunkt finns för att träffas avslutas programmet och konsolfönstret stänger sig när programmet är klart. Om programmet matas ut till konsolen använder du Ctrl+F5 eller anger en brytpunkt innan du trycker på F5 för att hålla fönstret öppet.
- Ctrl+F5, eller Felsök>Start utan felsökning, kör programmet utan att gå in i felsökningsläge. Detta är något snabbare än felsökning och konsolfönstret förblir öppet när programmet har körts klart.
- Med F10, som kallas Step Over, kan du iterera genom kod, rad för rad och visualisera hur koden körs och vilka variabelvärden som finns i varje körningssteg.
- F11, som kallas Step Into, fungerar på samma sätt som Step Over, förutom att den går in i alla funktioner som anropas på körningsraden. Om den rad som körs till exempel anropar en funktion, flyttar du pekaren genom att trycka på F11 till funktionens brödtext, så att du kan följa funktionens kod som körs innan du kommer tillbaka till den rad som du startade på. Om du trycker på F10 så kliver du över funktionsanropet och går vidare till nästa rad; funktionsanropet sker fortfarande, men programmet pausar inte för att visa vad det gör.
Stäng appen
- Om den fortfarande körs stänger du konsolfönstret för att stoppa kalkylatorappen.
Lägg till Git-källkontroll
Nu när du har skapat en app kanske du vill lägga till den i en Git-lagringsplats. Vi hjälper dig. Visual Studio gör processen enkel med Git-verktyg som du kan använda direkt från IDE.
Tips/Råd
Git är det mest använda moderna versionskontrollsystemet, så oavsett om du är professionell utvecklare eller lär dig att koda kan Git vara mycket användbart. Om du är nybörjare på Git är https://git-scm.com/ webbplats ett bra ställe att börja på. Där hittar du fuskark, en populär onlinebok och Git Basics-videor.
Om du vill associera din kod med Git börjar du med att skapa en ny Git-lagringsplats där koden finns. Så här gör du:
I statusfältet längst ned till höger i Visual Studio väljer du Lägg till i källkontroll och sedan Git.
I dialogrutan Skapa en Git-lagringsplats loggar du in på GitHub.
Lagringsplatsens namn fylls i automatiskt baserat på din mappplats. Som standard är den nya lagringsplatsen privat, vilket innebär att du är den enda som kan komma åt den.
Tips/Råd
Oavsett om lagringsplatsen är offentlig eller privat är det bäst att ha en fjärrsäkerhetskopia av koden lagrad på ett säkert sätt på GitHub. Även om du inte arbetar med ett team gör en fjärrlagringsplats din kod tillgänglig för dig från valfri dator.
Välj Skapa och skicka.
När du har skapat lagringsplatsen visas statusinformation i statusfältet.
Den första ikonen med pilarna visar hur många utgående/inkommande commits som finns i din aktuella gren. Du kan använda den här ikonen för att hämta inkommande förändringar eller skicka utgående förändringar. Du kan också välja att visa dessa införanden först. Det gör du genom att välja ikonen och sedan Visa utgående/inkommande.
Den andra ikonen med pennan visar antalet oincheckade ändringar i koden. Du kan välja den här ikonen om du vill visa ändringarna i fönstret Git-ändringar.
Mer information om hur du använder Git med din app finns i dokumentationen för versionskontroll i Visual Studio.
Den färdiga appen
Grattis! Du har slutfört koden för kalkylatorappen, skapat och debuggat den och lagt till den på en lagringsplats, allt i Visual Studio.
Nästa steg
Den vanliga startpunkten för en C++-programmerare är ett "Hello, world!"-program som körs på kommandoraden. Du börjar med det i den här artikeln och går sedan vidare till något mer utmanande: en kalkylatorapp.
Förutsättningar
- Visual Studio med Skrivbordsutveckling med C++ arbetsuppgift installerad och körs på din dator. Information om hur du installerar det finns i Installera C++-stöd i Visual Studio.
Skapa ditt appprojekt
Visual Studio använder projekt för att organisera koden för en app och lösningar för att organisera ett eller flera projekt. Ett projekt innehåller alla alternativ, konfigurationer och regler som används för att skapa en app. Den hanterar också relationen mellan alla projektets filer och eventuella externa filer. Skapa din app genom att först skapa ett nytt projekt och en ny lösning.
På menyraden i Visual Studio väljer du Arkiv>Nytt>projekt. Fönstret Nytt projekt öppnas.
Kontrollera att Visual C++ är markerat i det vänstra sidofältet. I mitten väljer du Konsolapp.
I textrutan Namn längst ned namnger du det nya projektet CalculatorTutorial och väljer sedan OK.
Till vänster är Andra språk > Visual C++ markerat. I mitten är projekttypen Konsolapp markerad. Textrutan Namn innehåller CalculatorTutorial.
En tom "Hello World"-konsolapplikation för C++ i Windows har skapats. Konsolprogram använder ett Windows-konsolfönster för att visa utdata och acceptera användarindata. I Visual Studio öppnas ett redigeringsfönster och visar den genererade koden:
// 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
Kontrollera att din nya app bygger och körs
Mallen för ett nytt Windows-konsolprogram skapar en enkel C++ "Hello World"-app. Nu kan du se hur Visual Studio skapar och kör de appar som du skapar direkt från IDE:t.
Om du vill skapa projektet väljer du Skapa lösning på menyn Skapa . Fönstret Utdata visar resultatet av byggprocessen.
Om du vill köra koden går du till menyraden och väljer Felsök, Starta utan att felsöka (Ctrl+F5).
Ett konsolfönster öppnas och appen körs i den.
När du startar en konsolapp i Visual Studio körs din kod och
Press any key to close this window . . .
skrivs ut så att du har en chans att se utmatningen.Grattis! Du skapade din första konsolapp "Hello, world!" i Visual Studio!
Tryck på en tangent för att stänga konsolfönstret och återgå till Visual Studio.
Nu har du verktygen för att skapa och köra din app efter varje ändring för att kontrollera att koden fortfarande fungerar som förväntat. Senare visar vi hur du felsöker det om det inte fungerar.
Redigera koden
Nu ska vi omvandla koden i den här mallen till en kalkylatorapp.
Ersätt innehållet i
CalculatorTutorial.cpp
filen med följande kod så att den matchar det här exemplet:// 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
Förstå koden:
- Satsen
#include
importerar kod från andra filer. Ibland kan du se ett filnamn omgivet av vinkelparenteser som<iostream>
. Vinkelparenteserna instruerar kompilatorn att leta efter huvudfilen först i standardsystemkatalogerna, och om den inte hittas ska den titta i kataloger som är specifika föriostream
projektet. Andra gånger kan du se ett filnamn omgivet av citattecken som"someHeader.h"
. Citattecken instruerar kompilatorn att hoppa över att titta i standardsystemkatalogerna och i stället bara titta i kataloger som är specifika för projektet. -
using namespace std;
Instruerar kompilatorn att förvänta sig att kod från C++-standardbiblioteket ska användas i den här filen. Utan den här raden måste varje nyckelord från biblioteket föregås avstd::
för att ange dess omfång. Utan den raden skrivs till exempel varje referens tillcout
somstd::cout
. -instruktionenusing
läggs till för att göra det enklare att komma åt kod i ett annat namnområde. - Nyckelordet
cout
skriver ut till standardutgång i C++. Operatorn<<
uppmanar kompilatorn att skicka det som är till höger om den till standardutdata. - Nyckelordet
endl
är som returnyckeln. Det avslutar raden och flyttar markören till nästa rad. Det är en bättre praxis att placera en\n
inuti strängen (som finns i""
) för att göra samma sak eftersomendl
alltid rensar bufferten och kan skada programmets prestanda. Men eftersom det här är en mycket liten appendl
används den i stället. - Alla C++-instruktioner måste sluta med semikolon och alla C++-program måste innehålla en
main()
funktion. Den här funktionen är vad programmet kör i början. All kod måste vara tillgänglig frånmain()
för att kunna användas.
- Satsen
Spara filen genom att trycka på Ctrl+S eller välja diskettikonen i verktygsfältet under menyraden.
Om du vill köra programmet trycker du på Ctrl+F5 eller går till felsökningsmenyn och väljer Starta utan felsökning. Om du får ett popup-fönster med texten Det här projektet är inaktuellt kan du välja Visa inte dialogrutan igen och sedan välja Ja för att skapa programmet. Du bör se ett konsolfönster som ser ut så här:
Konsolappen visar följande utdata: Kalkylator-konsolapplikation. Ange den åtgärd som ska utföras. Format: a+b | a-b | a*b | a/b. Processen avslutades med kod 0 och det finns ett meddelande om att om du vill stänga konsolen automatiskt när felsökningen stoppas aktiverar du Verktyg > Alternativ > Felsökning > Stäng konsolen automatiskt när felsökningen stoppas. Slutligen finns det ett meddelande om att trycka på valfri tangent för att stänga det här fönstret.
Stäng konsolfönstret när du är klar.
Lägg till kod för att göra lite matematik
En klass är som en skiss för ett objekt som gör något. I det här fallet definierar vi en kalkylatorklass som ska innehålla matematiklogik.
Lägga till en kalkylatorklass
Gå till menyn Projekt och välj Lägg till klass. I redigeringsrutan Klassnamn anger du Kalkylator. Välj OK.
Fältet klassnamn innehåller textkalkylatorn. Filfältet .h innehåller Calculator.h. Filfältet .cpp innehåller Calculator.cpp. Basklassfältet är tomt. Alternativen för infogade och hanterade är avmarkerade.
En klass är som en skiss för ett objekt som gör något. I det här fallet definierar vi en kalkylator och hur den ska fungera.
Två nya filer läggs till i projektet. Om du vill spara alla dina ändrade filer samtidigt trycker du på Ctrl+Skift+S. Det är ett kortkommando för Fil>. Det finns också en verktygsfältsknapp för Spara alla, en ikon på två diskettdiskar, som finns bredvid knappen Spara . I allmänhet är det bra att göra Spara alla ofta, så att du inte missar några filer när du sparar.
Guiden Lägg till klass skapar
.h
och.cpp
filer som har samma namn som klassen. Du kan se en fullständig lista över dina projektfiler i Solution Explorer-fönstret , som visas på sidan av IDE. Om Solution Explorer inte visas öppnar du den från menyraden: välj Visa>Solution Explorer.Självstudieprojektet för kalkylatorn har en nod för huvudfiler som innehåller Calculator.h, stdafx.h och targetver.h. Noden Källfiler innehåller Calculator.cpp, CalculatorTutorial.cpp och stdafx.cpp. Noder för referenser, externa beroenden och resursfiler är synliga men stängda.
Du kan öppna en fil genom att dubbelklicka på den i Solution Explorer-fönstret . Dubbelklicka på
Calculator.h
för att öppna den.Ersätt innehållet i
Calculator.h
med följande kod så att filen nu ser ut så här:#pragma once class Calculator { public: double Calculate(double x, char oper, double y); };
Förstå koden
- Den här koden deklarerar en ny funktion med namnet
Calculate
, som hanterar matematiska åtgärder för addition, subtraktion, multiplikation och division. - C++-kod ordnas i huvudfiler (
.h
) och källfiler (.cpp
). Vissa andra filnamnstillägg stöds av olika kompilatorer, men dessa är de viktigaste filnamnstilläggen att känna till. Funktioner och variabler deklareras normalt, d.v.s. med ett namn och en typ, i huvudfiler och implementeras, eller ges en definition, i källfiler. Om du vill komma åt kod som definierats i en annan fil kan du använda#include "filename.h"
, därfilename.h
är namnet på filen som deklarerar de variabler eller funktioner som du vill använda. - Det är bra att organisera koden i olika filer baserat på vad den gör, så det är enkelt att hitta den kod du behöver senare. I vårt fall definierar
Calculator
vi klassen separat från filen som innehållermain()
funktionen, men vi planerar att refereraCalculator
till klassen imain()
.
- Den här koden deklarerar en ny funktion med namnet
En grön squiggle visas under
Calculate
eftersom ävenCalculate
om funktionen hardeklarerats är den inte definierad. Hovra överCalculate
, klicka på nedåtpilen på glödlampan och välj Skapa definition av "Beräkna" iCalculator.cpp
. Ett popup-fönster visas som ger dig en titt på kodändringen som gjordes i den andra filen. Koden lades till iCalculator.cpp
.Video som visar användningen av listrutan med glödlampan för att välja "Skapa definition för Beräkna" i Calculator.cpp.
För närvarande returnerar den bara 0,0. Vi ändrar på det. Tryck på Esc för att stänga popup-fönstret och välj Ja för att spara ändringarna.
Växla till
Calculator.cpp
filen i redigeringsfönstret. Ersätt innehållet i filen med följande kod:#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; } }
Förstå koden
- Funktionen
Calculate
tar ett tal, en operator och ett andra tal. Sedan utför den begärda åtgärden på de två talen. - Utsagan
switch
kontrollerar vilken operator som har angetts och kör det fall som motsvarar den åtgärden. Situationendefault:
är en reservlösning om användaren skriver en operator som inte hanteras av någon av de tidigarecase
uttrycken. Det är bäst att hantera ogiltiga användarindata på ett mer elegant sätt, men det ligger utanför omfattningen för den här handledningen. - Nyckelordet
double
anger en typ av tal som stöder decimaler. Den här typen av tal kallas ett flyttalsnummer ochdouble
innebär ett flyttalnummer som har extra precision. På så sätt kan kalkylatorn hantera både decimal matematik och heltalsmatematik. FunktionenCalculate
måste alltid returnera ett flyttal med dubbel precision på grund avdouble
i början av koden (som anger funktionens returtyp), vilket är anledningen till att vi returnerar 0,0 i standardfallet. - Filen
.h
deklarerar funktionsprototypen, som talar om för kompilatorn i förväg vilka parametrar den behöver och vilken returtyp som ska förväntas av den. Filen.cpp
innehåller all implementeringsinformation om funktionen.
- Funktionen
Om du skapar och kör koden igen nu avslutas den fortfarande när du har frågat vilken åtgärd som ska utföras. Ändra sedan funktionen så att den main
utför vissa beräkningar.
Anropa medlemsfunktionerna för klassen Calculator
Uppdatera funktionen i
main
enligt följande iCalculatorTutorial.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; }
Förstå koden
- Eftersom C++-program alltid startar vid
main()
funktionen måste vi anropa vår andra kod därifrån, så det krävs en#include
instruktion för att göra koden synlig för vårmain()
funktion. - Variablerna
x
,y
,oper
ochresult
deklareras för att lagra det första talet, det andra talet, operatorn respektive slutresultatet. Det är alltid bra att ge dem några inledande värden för att undvika odefinierat beteende, vilket är vad som görs här. - Raden
Calculator c;
deklarerar ett objekt med namnetc
som en instans avCalculator
klassen. Själva klassen är bara en skiss för hur kalkylatorer fungerar. -objektet är den specifika kalkylatorn som utför matematiken. - Satsen
while (true)
är en loop. Koden i loopen körs om och om igen så länge villkoret inuti()
är sann. Eftersom villkoret helt enkelt anges somtrue
är det alltid sant, så loopen körs för alltid. Om du vill stänga programmet måste användaren stänga konsolfönstret manuellt. Annars väntar programmet alltid på nya indata. - Nyckelordet
cin
accepterar indata från användaren. Indataströmmen är tillräckligt smart för att bearbeta en textrad som anges i konsolfönstret och placera den i var och en av de variabler som anges i ordning. - Uttrycket
c.Calculate(x, oper, y);
anropar funktionenCalculate
som definierats tidigare och tillhandahåller de angivna indatavärdena och den begärda åtgärden. Funktionen returnerar sedan ett tal som lagras iresult
. -
result
Slutligen skrivs ut till konsolen och användaren ser resultatet av beräkningen.
- Eftersom C++-program alltid startar vid
Skapa och testa koden igen
Testa programmet igen för att se till att allt fungerar korrekt.
Tryck på Ctrl+F5 för att återskapa och starta appen.
Ange
5+5
och tryck på Retur. Kontrollera att resultatet är 10.Stoppa programmet genom att stänga konsolfönstret.
Felsöka appen
Eftersom användaren kan skriva in allt i konsolfönstret ska vi se till att kalkylatorn hanterar oväntade indata. I stället för att köra programmet ska vi felsöka det i stället, så att vi kan kontrollera vad det gör steg för steg.
Kör appen i felsökningsprogrammet
I
CalcuatorTutorial.cpp
sätter du en brytpunkt påresult = c.Calculate(x, oper, y);
-raden. Om du vill ange brytpunkten klickar du bredvid raden i det grå lodräta fältet längs redigeringsfönstrets vänstra kant så att en röd punkt visas.Nu när du felsöker programmet pausar det alltid programmets körning på den raden. Vi har redan en grov idé om att programmet fungerar för enkla fall. Eftersom vi inte vill pausa utförandet varje gång ska vi göra brytpunkten villkorad.
Högerklicka på den röda punkt som representerar brytpunkten och välj Villkor. I redigeringsrutan för villkoret anger du
(y == 0) && (oper == '/')
. Välj knappen Stäng när du är klar för att spara brytpunktsvillkoret.Brytpunkten är på raden: result = c punkt Beräkna ( x, oper, y). "Villkor..." Alternativet Villkor är markerat. Listrutan Villkor är inställd på "Villkorsuttryck". Villkorslistrutan är inställd på "Är sant". Villkoret är inställt på y == 0 && oper == '/'.
Körningen pausas vid brytpunkten om ett försök till division med 0 görs.
Om du vill felsöka programmet trycker du på F5 eller väljer verktygsfältsknappen Lokalt Windows-felsökningsprogram som har den gröna pilikonen. Om du anger något i stil med "5–0" i konsolappen fungerar programmet normalt och fortsätter att köras. Men om du skriver "10/0" pausas den vid brytpunkten. Du kan till och med placera valfritt antal blanksteg mellan operatorn och talen.
cin
är tillräckligt smart för att parsa indata på rätt sätt.Video som visar programkörningen som är pausad vid en villkorlig brytpunkt.
Användaren anger 5–0. Appens utdata: Resultatet är 5. Användaren anger sedan 10/0 och eftersom villkoret för den villkorliga brytpunkten uppfylls stoppas körningen på raden: result = c.Calculate(x, oper, y);
Användbara fönster i felsökningsprogrammet
När du felsöker koden kan det hända att vissa nya fönster visas. Dessa fönster kan hjälpa dig att felsöka. Ta en titt på Autos-fönstret. Fönstret Autos visar de aktuella värdena för variabler som används minst tre rader före och upp till den aktuella raden. Om du inte ser fönstret Autos väljer du Felsöka>Windows>Autos på huvudmenyn.
Värdet för oper är 47 '/', resultatet är 5, x är 10 och y är 0.
Om du vill se alla variabler från den funktionen växlar du till fönstret Lokal . Eftersom det här är en liten funktion visar fönstret Autos and Locals samma variabler. Men du kan ändra värdena för dessa variabler vid felsökning för att se vilken effekt de skulle ha på programmet. I det här fallet lämnar vi dem ensamma. Öppna fönstret Lokalt genom att välja Lokal längst ned i fönstret Autos eller genom att välja på huvudmenyn Felsöka>Windows>Locals.
Värdet för oper är 47 "/", resultatet är 0, x är 10 och y är 0.
Du kan också hovra över variabler i själva koden för att se deras aktuella värden där körningen för närvarande är pausad. Kontrollera att redigeringsfönstret är i fokus genom att klicka på det först.
Fortsätt felsökningen
Den gula pilen till vänster visar den aktuella exekveringspunkten. Den aktuella raden anropar
Calculate
, så tryck på F11 för att stega in i funktionen, vilket tar dig in i funktionensCalculate
brödtext. Var försiktig med Step Into eftersom den kliver in i vilka funktioner som helst på den rad där du befinner dig, inklusive funktioner från standardbiblioteket. Det är bra att gå in i standardbiblioteket, men du kanske är mer intresserad av att fokusera på din kod i stället för bibliotekskod.Nu när exekveringspunkten är i början av
Calculate
-funktionen, trycker du på F10 för att gå till nästa rad i programmet. F10 kallas även Step Over. Du kan använda Step Over för att flytta från rad till rad, utan att gå in på detaljer om vad som händer i varje del av raden. I allmänhet bör du använda Step Over i stället för Step Into, såvida du inte vill fördjupa dig i kod som anropas från en annan plats (som du gjorde för att nå brödtextenCalculate
i ).Fortsätt att använda F10 för att stega över varje rad tills du kommer tillbaka till
main()
funktionen i den andra filen och stoppa påcout
raden.Programmet gör vad som förväntas: det tar det första talet och delar det med det andra.
cout
Hovra över variabelnresult
på linjen eller ta en titt påresult
i fönstret Autos. Dess värde ärinf
, vilket inte ser rätt ut.Den aktuella instruktionen i felsökningsprogrammet är cout << "Result is: " << result << endl; I fönstret Autos är resultatet inf.
Vi fixar det. Raden
cout
matar ut det värde som lagras iresult
, så när du går en rad framåt med F10 visas konsolfönstret:Appens utdata: Ange den åtgärd som ska utföras. Format: a+b | a-b | a*b | a/b. Användaren angav 5–0. Appens utdata: Resultatet är: 5. Användaren angav 10/0. Appens utdata: Resultatet är: inf
Det här resultatet beror på att divisionen med noll är odefinierad, så programmet har inget numeriskt svar för den begärda åtgärden.
Åtgärda felet "dividera med noll"
Nu ska vi hantera division med noll mer smidigt så att det är lättare för användaren att förstå problemet.
Gör följande ändringar i
CalculatorTutorial.cpp
. (Du kan låta programmet köras när du redigerar, tack vare en felsökningsfunktion med namnet Redigera och fortsätt). Ändringen är att lägga till enif
instruktion som följercin >> x >> oper >> y;
för att söka efter division med noll och mata ut ett meddelande till användaren om det händer. Annars skrivs resultatet ut:// 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; }
Tryck på F5 en gång. Programkörningen fortsätter tills den måste pausas för att be om användarindata. Ange
10 / 0
igen. Nu skrivs ett mer användbart meddelande ut. Användaren uppmanas att ange mer indata och programmet fortsätter att köras normalt.Anmärkning
När du redigerar kod i felsökningsläge finns det en risk att koden blir inaktuell. Detta inträffar när felsökaren fortfarande kör din gamla kod och ännu inte har uppdaterat den med dina ändringar. Felsökningsprogrammet öppnar en dialogruta för att informera dig när detta händer. Ibland kan du behöva trycka på F5 för att uppdatera koden som körs. Om du gör en ändring i en funktion medan körningspunkten finns i den, gå ut ur funktionen och gå sedan tillbaka in i den igen för att få den uppdaterade koden. Om det inte fungerar av någon anledning och du ser ett felmeddelande kan du sluta felsöka genom att klicka på den röda rutan i verktygsfältet under menyerna överst i IDE:n och sedan börja felsöka igen genom att ange F5 eller genom att välja den gröna uppspelningspilen bredvid stoppknappen i verktygsfältet.
En annan orsak till att det inte går att redigera och fortsätta är att du måste gå till huvudmenyn och välja Verktygsalternativ>>Felsökning>Allmänt och se till att Kräv källfiler för att exakt matcha den ursprungliga versionen är markerat.
Förstå genvägarna för att köra och debugga
- F5, eller Felsökning>Starta felsökning, startar en felsökningssession, om en inte redan är aktiv, och kör programmet tills en brytpunkt har träffats eller programmet behöver användarindata. Om ingen användarinmatning behövs och ingen brytpunkt finns för att träffas avslutas programmet och konsolfönstret stänger sig när programmet är klart. Om programmet matas ut till konsolen använder du Ctrl+F5 eller anger en brytpunkt innan du trycker på F5 för att hålla fönstret öppet.
- Ctrl+F5, eller Felsök>Start utan felsökning, kör programmet utan att gå in i felsökningsläge. Detta är något snabbare än felsökning och konsolfönstret förblir öppet när programmet har körts klart.
- Med F10, som kallas Step Over, kan du iterera genom kod, rad för rad och visualisera hur koden körs och vilka variabelvärden som finns i varje körningssteg.
- F11, som kallas Step Into, fungerar på samma sätt som Step Over, förutom att den går in i alla funktioner som anropas på körningsraden. Om den rad som körs till exempel anropar en funktion, flyttar du pekaren genom att trycka på F11 till funktionens brödtext, så att du kan följa funktionens kod som körs innan du kommer tillbaka till den rad som du startade på. Om du trycker på F10 så kliver du över funktionsanropet och går vidare till nästa rad; funktionsanropet sker fortfarande, men programmet pausar inte för att visa vad det gör.
Stäng appen
- Om den fortfarande körs stänger du konsolfönstret för att stoppa kalkylatorappen.
Den färdiga appen
Grattis! Du har slutfört koden för kalkylatorappen och skapat och debuggat den i Visual Studio.