# C++ en Visual Studio Code

Tot nu toe hebben we gebruikt gemaakt van de online versie van C++. Maar nu je de basis van C++ kent is het ook handig om C++ op je laptop te installeren. In de volgende stappen wordt uitgelegd hoe je Visual Studio Code kan installeren. Onderstaande stappen zijn geschreven voor computers met Windows.&#x20;

In dit hoofdstuk leer je ook hoe je C++ code moet [compileren en runnen in Visual Studio Code](#c++-compileren-en-runnen).&#x20;

## **C++ installeren**



**Stap 1:** installeer de compiler: GCC met Mingw-w64

* Ga naar [https://winlibs.com/#download](https://winlibs.com/#download)
* Hoogstwaarschijnlijk heb je een 64-bit computer, dan moet je de regel hebben die begint met Win64, en je kan "without LLVM/Clang/LLD/LLDB" kiezen

<figure><img src="https://155810540-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fag1wUPh8M2n58lYXKcOY%2Fuploads%2FdDlNhhzt3Clyis0DSQm4%2Fimage.png?alt=media&#x26;token=d196e9f1-b895-4681-b786-601a5fd416f0" alt=""><figcaption></figcaption></figure>

* Pak het zip-bestand dat je hebt gedownload uit. Het makkelijkst is om als doel C:\ te kiezen.

<figure><img src="https://155810540-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fag1wUPh8M2n58lYXKcOY%2Fuploads%2F7HJXzKtJng02xPZ5mefu%2Fimage.png?alt=media&#x26;token=541643db-8f66-4768-abf2-a1300e458ffd" alt=""><figcaption></figcaption></figure>



**Stap 2:** voeg het pad van de Mingw-w64 bin folder toe aan de Windows PATH environment variable.

* Als het goed is heb je nu de map mingw64, met daarin een map "bin".
* Open Windows Settings (instellingen).
* Zoek voor "omgevingsvariabelen voor uw account bewerken" (In het Engels is dit Edit environment variables).
* Klik op Path en dan op Bewerken.&#x20;
* Klik dan op Nieuw en voeg C:\mingw64\bin toe
* Klik OK  en nog een keer op OK

<figure><img src="https://155810540-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fag1wUPh8M2n58lYXKcOY%2Fuploads%2FQE0ViP2F8NvQFZHNf2bu%2Fimage.png?alt=media&#x26;token=97cc4fc6-ca2c-4648-841e-f26ea497c7c9" alt="" width="563"><figcaption></figcaption></figure>

**Stap 3:** installeer visual studio code

* Download visual studio via de link [https://code.visualstudio.com/download](https://code.visualstudio.com/download)
* En installeer visual studio code

**Stap 4**: installeer C/C++ voor visual studio code

* Open visual studio
* Klik op het Extensions icoon <img src="https://155810540-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fag1wUPh8M2n58lYXKcOY%2Fuploads%2FButQwQFoAGxMo6961fnT%2Fimage.png?alt=media&#x26;token=bd28506d-727f-4af3-8c1a-44bd9eac74cf" alt="" data-size="line"> in het menu aan de linkerkant (Ctrl+Shift+X).
* zoek naar C++.
* Klik Install.

![](https://155810540-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fag1wUPh8M2n58lYXKcOY%2Fuploads%2FgIDFNuhQbIn9YIYTXFj2%2Fimage.png?alt=media\&token=5fa8dc8d-1b4e-4b74-8d1c-9197a822830a)

**Stap 5**: schrijf een eerste code

* Open visual studio code
* Klik op het Explorer icoon <img src="https://155810540-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fag1wUPh8M2n58lYXKcOY%2Fuploads%2FpWWn8ZUsRFtQX7U7RllA%2Fimage.png?alt=media&#x26;token=341856dd-cb9d-486c-a339-7c76ad84cf61" alt="" data-size="line"> in menu aan de linkerkant en open de folder waar je je code later wil opslaan&#x20;

![](https://155810540-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fag1wUPh8M2n58lYXKcOY%2Fuploads%2FTTcqm8ygjtcX9na9XJUY%2Fimage.png?alt=media\&token=47c19aef-95a7-48e0-ae1a-1d739405db8b)

* Kies voor File -> new text file (Ctrl + N)&#x20;
* Schrijf een C++ programma
* Kies voor File -> Save (Ctrl + S) en sla je programma op als c++ programma.&#x20;

Tip: Wil je de zwarte kleur van visual studio code aanpassen, ga dan naar File -> Preferences -> Color Theme.

&#x20;**Stap 6:** compileren en runnen van je code

* Om de C++ code te runnen kies dan rechtsbovenin voor het icoon ![](https://155810540-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fag1wUPh8M2n58lYXKcOY%2Fuploads%2F4qAUwNjCy6DuprJhvdxU%2Fimage.png?alt=media\&token=3bc628ab-7ca9-4e6c-9f3c-a2de08cbeeff) (Run C/C++ file). Op dezelfde plek staat ook het icoon ![](https://155810540-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fag1wUPh8M2n58lYXKcOY%2Fuploads%2Fnlyo62fSWwnQN5znRzOD%2Fimage.png?alt=media\&token=760e2ebe-14c1-4660-a2d1-a8a2d66c0d71), deze voert de code alleen uit in debug-modus. Als je wil wisselen tussen de twee kan je het pijltje ernaast klikken.&#x20;
* Kies de optie g++.exe builde active file

<figure><img src="https://155810540-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fag1wUPh8M2n58lYXKcOY%2Fuploads%2Frr10ZdUsoOAa5oW0PE0F%2Fimage.png?alt=media&#x26;token=ed6e0f12-9273-43ad-8dc8-5022679a3131" alt=""><figcaption></figcaption></figure>

* Het resultaat van je programma zie in de Terminal onderin. Als er nog fouten in je code zitten dan zie je de foutmeldingen ook in de Terminal (View -> Terminal) onderin.&#x20;
* De installatie is nu klaar!
* Stel dat je nu een error krijgt wanneer je je programma wil runnen, kan je onderstaande stappen volgen om dit op te lossen:

### Volg dit stappenplan als je geen programma kan runnen:

**Stap 1:**

* Ga naar deze website: [https://code.visualstudio.com/docs/languages/cpp ](https://code.visualstudio.com/docs/languages/cpp)(als de link niet werkt of verouderd is, kan je ook googelen op "install c++ visual studio code".
* Volg de stappen die beschreven staan onder het kopje "_Example: Install MinGW-x64 on Windows_".\
  Je installeert nu de C++ compiler op een andere manier, die (als het goed is) wel werkt. Je kan stoppen als je bij het kopje "_Create a Hello World App_" komt.
* Als je aan het eind je programma wil testen, werkt het waarschijnlijk nog steeds niet, maar dat gaan we in de volgende stappen oplossen.

**Stap 2:**

* Ga naar je instellingen en zoek op "omgevingsvariabelen voor uw account bewerken" (In het Engels is dit Edit environment variables).
* Klik op Path en dan op bewerken.
* Verwijder dan het oude pad dat je eerder hebt toegevoegd. Die heet waarschijnlijk “C:\mingw64\bin”.
* Klik dan op OK en weer op OK om dit tabblad te sluiten.

**Stap 3:**

1. Open Visual studio code en ga naar het bestand dat je hebt aangemaakt om de installatie te testen. Ga naar de explorer op de linkerkant van het scherm (klik op het bestand icoontje linksboven.)
2. Klik op de map genaamd “.vscode”.
3. Open het bestand "tasks.json".
4. Zorg ervoor dat het er zo uitziet: (waarschijnlijk moet je de tekst na "command" vervangen door "C:\\\msys64\\\ucrt64\\\bin\\\g++.exe"

<figure><img src="https://155810540-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fag1wUPh8M2n58lYXKcOY%2Fuploads%2FnJ241FfWqQEhaKgvQqqM%2Flaunch%20json.png?alt=media&#x26;token=0eab81f6-b1dd-47a5-bf14-a0387efdf5c7" alt=""><figcaption></figcaption></figure>

* Sla dit bestand op.

**Stap 4:**

* Test nog een keer of je het bestand nu wel kan uitvoeren. Als het goed is, werkt het nu en is je probleem opgelost!!!

#### Troubleshooten <a href="#troubleshooten" id="troubleshooten"></a>

* Je hoeft in principe voor geen van deze stappen je computer opnieuw op te starten, maar als er iets niet werkt kan je kijken of het helpt.
* Om te checken of g++ geïnstalleerd is: Open Opdrachtprompt (als je daar nog een venster van open hebt staan, sluit die eerst af). Typ dan `g++ --version` en druk op enter. Als je wat informatie krijgt over g++ is het goed, maar als er iets staat zoals `'g++' is not recognized...` dan klopt er iets niet. In dat geval moet je even controleren of je inderdaad de map mingw64 hebt, met daarin de map bin (op de plek waar je het neergezet hebt in stap 2). Zo ja, dan is er iets fout gegaan met stap 3. Je kan weer teruggaan naar de "Omgevingsvariabelen bewerken" popup van stap 3 om te kijken of de regel die je hebt toegevoegd er nog steeds staat, of het pad klopt, en of je inderdaad het "bin"-mapje hebt toegevoegd (niet het mingw64-mapje zelf).
* Het zou ook nog kunnen dat er iets fout gaat omdat je meerdere versies van g++ geïnstalleerd hebt. In dat geval zie je bij de "Omgevingsvariabelen bewerken" popup van stap 3 waarschijnlijk ook op andere regels mingw64 staan.
* Als Visual Studio Code altijd errors geeft als je op ![](https://daanolav.gitbook.io/~gitbook/image?url=https%3A%2F%2F1410072608-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FVrusDe8S766xy3FNCLaH%252Fuploads%252FEYrCYp5niTnF3Q2EAmL8%252Frun.png%3Falt%3Dmedia%26token%3D02859c10-3779-4e3d-ac06-8df25b78161c\&width=40\&dpr=4\&quality=100\&sign=8d2f5c83\&sv=2) of ![](https://daanolav.gitbook.io/~gitbook/image?url=https%3A%2F%2F1410072608-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FVrusDe8S766xy3FNCLaH%252Fuploads%252Fjv1OfyScC3ynzjZCrJTx%252Fdebug.png%3Falt%3Dmedia%26token%3D087a32aa-2b2e-44b1-acab-12df62df62a2\&width=40\&dpr=4\&quality=100\&sign=d22613e8\&sv=2) drukt (ook met de testcode van stap 6), dan zou het nog kunnen dat het niet de goede compiler gebruikt. Dan kan je rechtsboven op ![](https://daanolav.gitbook.io/~gitbook/image?url=https%3A%2F%2F1410072608-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FVrusDe8S766xy3FNCLaH%252Fuploads%252FwPk1lQp1B9o2IIf3bdYC%252Ftandwiel.png%3Falt%3Dmedia%26token%3D71553db7-585d-4502-9ae3-a07d32846a4a\&width=300\&dpr=4\&quality=100\&sign=77619de8\&sv=2) drukken om het menu uit stap 7 weer te krijgen, en checken of g++ geselecteerd is.

## C++ compileren en runnen

In C++ zijn er nog meer manieren om je code te compileren en runnen in Visual Studio Code naast de knoppen ![](https://daanolav.gitbook.io/~gitbook/image?url=https%3A%2F%2F1410072608-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FVrusDe8S766xy3FNCLaH%252Fuploads%252FEYrCYp5niTnF3Q2EAmL8%252Frun.png%3Falt%3Dmedia%26token%3D02859c10-3779-4e3d-ac06-8df25b78161c\&width=40\&dpr=4\&quality=100\&sign=8d2f5c83\&sv=2) of ![](https://daanolav.gitbook.io/~gitbook/image?url=https%3A%2F%2F1410072608-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FVrusDe8S766xy3FNCLaH%252Fuploads%252Fjv1OfyScC3ynzjZCrJTx%252Fdebug.png%3Falt%3Dmedia%26token%3D087a32aa-2b2e-44b1-acab-12df62df62a2\&width=40\&dpr=4\&quality=100\&sign=d22613e8\&sv=2) . Hieronder nog 2 andere opties:

**Optie 1**\
Via de CPH Judge. CPH staat voor Competive Programmer Helper. CPH is een extra extensie die je moet installeren in Visual Studio Code:\
&#x20;  \- Klik op het Extensions icoon <img src="https://155810540-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fag1wUPh8M2n58lYXKcOY%2Fuploads%2FButQwQFoAGxMo6961fnT%2Fimage.png?alt=media&#x26;token=bd28506d-727f-4af3-8c1a-44bd9eac74cf" alt="" data-size="line"> in het menu aan de linkerkant en zoek voor CPH Judge\
&#x20;  \- Installeer de CPH judge.

![](https://155810540-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fag1wUPh8M2n58lYXKcOY%2Fuploads%2FpH3pKsrxy0Zht7hMaDW1%2Fimage.png?alt=media\&token=5aa9e309-a96e-44d5-8a61-61fa50c98c5b)

&#x20;  \- Er komt nu een extra optie bij in het menu aan de linkerkant. Klik op het CPH icoon <img src="https://155810540-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fag1wUPh8M2n58lYXKcOY%2Fuploads%2FMcTi7A8irESUdfEAwGmw%2Fimage.png?alt=media&#x26;token=2aac1240-6f5e-428f-b198-e9195597e29c" alt="" data-size="line">\
&#x20;  \- Je kan in de CPH judge je programma compileren en runnen met de knop<img src="https://155810540-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fag1wUPh8M2n58lYXKcOY%2Fuploads%2FcEulTRmToY8KiWSiTxnb%2Fimage.png?alt=media&#x26;token=39f6699d-86b9-41df-9387-31a208a84cd0" alt="" data-size="line">

**Optie 2**\
Een andere optie om je programma uit te voeren is via de Terminal.

* Als je de Visual Studio Code-terminal gebruikt zit je automatisch al in het goede mapje, maar anders moet je navigeren naar de map waar je code staat. Dat doe je met het commando `cd`. Als je code bijvoorbeeld in de map "code" in Documenten staat, dan typ je `cd Documents/code`. Of je doet eerst `cd Documents` en daarna `cd code` als je het stap voor stap wil doen. Over het algemeen zie je links van je cursor de map waar je nu bent. Om een map terug te gaan doe je `cd ..`
* Als je in de goede map zit, kan je met `g++` je code compileren. Als je bijvoorbeeld het bestand "test.cpp" hebt, dan typ je het commando `g++ test.cpp`. Dit maakt een bestand aan dat je kan uitvoeren (die heet a.exe op Windows en a.out op Linux). Dit bestand kan je daarna uitvoeren door `./a.exe` of `./a.out` te typen. Rare uitzondering: alleen in Windows Opdrachtprompt moet je de `./` weglaten, dus dan krijg je `a.exe` in plaats van `./a.exe`.

### Tips <a href="#tips" id="tips"></a>

* Als je de code gecompileerd hebt kan je het resultaat meerdere keren uitvoeren zonder opnieuw te hoeven compileren. Dat is handig, maar vergeet zeker niet om opnieuw te compileren als je de code verandert!
* Als je op ![](https://daanolav.gitbook.io/~gitbook/image?url=https%3A%2F%2F1410072608-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FVrusDe8S766xy3FNCLaH%252Fuploads%252FEYrCYp5niTnF3Q2EAmL8%252Frun.png%3Falt%3Dmedia%26token%3D02859c10-3779-4e3d-ac06-8df25b78161c\&width=40\&dpr=4\&quality=100\&sign=8d2f5c83\&sv=2) of ![](https://daanolav.gitbook.io/~gitbook/image?url=https%3A%2F%2F1410072608-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FVrusDe8S766xy3FNCLaH%252Fuploads%252Fjv1OfyScC3ynzjZCrJTx%252Fdebug.png%3Falt%3Dmedia%26token%3D087a32aa-2b2e-44b1-acab-12df62df62a2\&width=40\&dpr=4\&quality=100\&sign=d22613e8\&sv=2) drukt in Visual Studio Code wordt de code automatisch gecompileerd en uitgevoerd. Je hebt dus de terminal niet per se nodig.
* Standaard moet je de input in de terminal intypen en komt de output ook in de terminal. Soms is dat genoeg, maar het komt vaak voor dat je steeds dezelfde input wil gebruiken (een testcase bijvoorbeeld), of dat je input heel groot is. In dat geval kan je een tekstbestand aanmaken waar je alle input in zet (bijvoorbeeld "testcase1.txt", maar het maakt niet uit hoe je het noemt). Dan kan je `< testcase1.txt` toevoegen als je het programma uitvoert, zodat het de input uit dat tekstbestand haalt in plaats van uit de terminal. Dan krijg je als commando bijvoorbeeld `./a.exe < testcase1.txt`.
* Op dezelfde manier kan je ook veranderen waar je output heen gaat door `> output.txt` toe te voegen aan je commando. Dan komt het in output.txt terecht in plaats van in de terminal. Dit heb je minder vaak nodig, maar het kan handig zijn als je veel output hebt. Je kan beide ook combineren, zodat je bijvoorbeeld `./a.exe < testcase1.txt > output1.txt` krijgt.
* Je kan het compileren en het uitvoeren combineren, zodat je steeds maar 1 commando hoeft uit te voeren. Dat doe je met `&&`, en dan krijg je bijvoorbeeld `g++ test.cpp && ./a.exe`, of zelfs `g++ test.cpp && ./a.exe < testcase1.txt > output1.txt && ./a.exe < testcase2.txt > output2.txt` als je meerdere testcases achter elkaar wil doen.



Julianne Polman, een oud-deelneemster van de EGOI legt beide opties uit in onderstaande video:

{% embed url="https://youtu.be/iY-mPCY3bSM" %}
