Zanim będziemy mogli napisać nasz pierwszy program, musimy nauczyć się tworzyć nowe programy w naszym zintegrowanym środowisku programistycznym (IDE). W tej lekcji omówimy, jak to zrobić, a także skompilujesz i uruchomisz swój pierwszy program!
Projekty
Aby napisać program w C++ w środowisku IDE, zazwyczaj zaczynamy od utworzenia nowego projektu (za chwilę pokażemy Ci, jak to zrobić). A projekt to kontener przechowujący wszystkie pliki kodu źródłowego, obrazy, pliki danych itp. potrzebne do stworzenia pliku wykonywalnego (lub biblioteki, strony internetowej itp.), który można uruchomić lub używać. Projekt zapisuje także różne ustawienia IDE, kompilatora i linkera, a także zapamiętuje miejsce, w którym przerwałeś, dzięki czemu po ponownym otwarciu projektu później stan IDE będzie można przywrócić do miejsca, w którym przerwałeś. Jeśli zdecydujesz się na kompilację programu, wszystkie pliki .cpp w projekcie zostaną skompilowane i połączone.
Każdy projekt odpowiada jednemu programowi. Kiedy będziesz gotowy do utworzenia drugiego programu, będziesz musiał albo utworzyć nowy projekt, albo nadpisać kod w istniejącym projekcie (jeśli nie chcesz go zachować). Pliki projektu są zazwyczaj specyficzne dla IDE, więc projekt utworzony dla jednego IDE będzie musiał zostać odtworzony w innym IDE.
Najlepsza praktyka
Utwórz nowy projekt dla każdego nowego programu, który napiszesz.
Projekty konsolowe
Kiedy tworzysz nowy projekt, zazwyczaj zostaniesz zapytany, jaki typ projektu chcesz utworzyć. Wszystkie projekty, które utworzymy w tym samouczku, będą projektami konsolowymi. A projekt konsoli oznacza, że będziemy tworzyć programy, które można uruchomić z konsoli Windows, Linux lub Mac.
Oto zrzut ekranu konsoli Windows:

Domyślnie aplikacje konsolowe nie mają graficznego interfejsu użytkownika (GUI), wypisują tekst na konsolę, odczytują dane wejściowe z klawiatury i są kompilowane do samodzielnych plików wykonywalnych. Jest to idealne rozwiązanie do nauki języka C++, ponieważ ogranicza złożoność do minimum i zapewnia działanie na wielu różnych systemach.
Nie martw się, jeśli nigdy wcześniej nie korzystałeś z konsoli lub nie wiesz, jak uzyskać do niej dostęp. Skompilujemy i uruchomimy nasze programy poprzez nasze IDE (które w razie potrzeby wywołają konsolę).
Przestrzenie robocze / rozwiązania
Kiedy tworzysz nowy projekt dla swojego programu, wiele IDE automatycznie doda Twój projekt do „obszaru roboczego” lub „rozwiązania” (termin różni się w zależności od IDE). Obszar roboczy lub rozwiązanie to kontener, w którym można przechowywać jeden lub więcej powiązanych projektów. Na przykład, jeśli piszesz grę i chcesz mieć osobny plik wykonywalny dla jednego gracza i dla wielu graczy, musisz utworzyć dwa projekty. Nie miałoby sensu, gdyby oba te projekty były całkowicie niezależne – w końcu są częścią tej samej gry. Najprawdopodobniej każdy z nich zostałby skonfigurowany jako oddzielny projekt w ramach jednego obszaru roboczego/rozwiązania.
Chociaż do jednego rozwiązania można dodać wiele projektów, generalnie zalecamy utworzenie nowego obszaru roboczego lub rozwiązania dla każdego programu, szczególnie podczas nauki. Jest to prostsze i istnieje mniejsze ryzyko, że coś pójdzie nie tak.
Napisanie swojego pierwszego programu
Tradycyjnie pierwszy program, który programiści piszą w nowym języku, jest niesławny witaj, świecie, programiei nie pozbawimy Cię tego doświadczenia! Podziękujesz nam później. Może.
Tworzenie projektu w Visual Studio 2019 (lub nowszym)
Po uruchomieniu programu Visual Studio 2019 (lub nowszego) powinno pojawić się okno dialogowe wyglądające tak:

Wybierz Utwórz nowy projekt.
Zobaczysz wówczas okno dialogowe wyglądające tak:

Jeśli otworzyłeś już poprzedni projekt, możesz uzyskać dostęp do tego okna dialogowego poprzez menu Plik > Nowy > Projekt.
Wybierz Kreator pulpitu systemu Windows i kliknij Dalej. Jeśli tego nie widzisz, prawdopodobnie zapomniałeś wybrać opcję zainstalowania obciążenia Desktop development with C++ podczas instalacji Visual Studio. W takim przypadku wróć do lekcji 0.6 -- Instalowanie zintegrowanego środowiska programistycznego (IDE) i zainstaluj ponownie program Visual Studio zgodnie ze wskazówkami (uwaga: zamiast wykonywać pełną ponowną instalację, możesz uruchomić instalator programu Visual Studio i zmodyfikować istniejącą instalację, aby dodać obciążenie C++).
Następnie zobaczysz okno dialogowe wyglądające tak:

Zastąp istniejący projekt name with HelloWorld.
Zaleca się również zaznaczenie Umieść rozwiązanie i projekt w tym samym katalogu, ponieważ zmniejsza to liczbę podkatalogów tworzonych przy każdym projekcie.
Kliknij Utwórz aby kontynuować.
W końcu zobaczysz jeden ostatnie okno dialogowe:

Upewnij się, że Typ aplikacji ustawiony jest jako Aplikacja konsolowa (.exe) i że opcja Prekompilowany nagłówek nie jest zaznaczona. Następnie kliknij OK.
Utworzyłeś projekt! Aby kontynuować, przejdź do sekcji Eksplorator rozwiązań Visual Studio .
P: Co to są prekompilowane nagłówki i dlaczego je wyłączamy?
W dużych projektach (tych z wieloma plikami kodu) prekompilowane nagłówki mogą przyspieszyć kompilację, unikając zbędnej kompilacji, która zwykle występuje w większych projektów.
Jednak użycie prekompilowanych nagłówków wymaga dodatkowej pracy, a w przypadku małych projektów (takich jak te, które utworzysz w naszych samouczkach) różnica w czasie kompilacji jest niewielka lub żadna.
Z tego powodu zalecamy początkowo wyłączenie prekompilowanych nagłówków i włączenie ich później tylko wtedy, gdy zauważysz, że czas kompilacji jest krótszy.
Tworzenie projektu w programie Visual Studio 2017 lub starszy
Aby utworzyć nowy projekt w Visual Studio 2017 lub starszym, przejdź do menu menu Plik > Nowy > Projekt. Pojawi się okno dialogowe wyglądające mniej więcej tak:

Najpierw upewnij się, że Visual C++ jest wymieniony po lewej stronie. Jeśli nie widzisz Visual C++, prawdopodobnie zapomniałeś zainstalować obciążenie Desktop development with C++ podczas instalacji Visual Studio. W takim przypadku wróć do lekcji 0.6 -- Instalowanie zintegrowanego środowiska programistycznego (IDE) i zainstaluj ponownie program Visual Studio zgodnie ze wskazówkami (uwaga: zamiast przeprowadzać pełną ponowną instalację, możesz uruchomić instalator programu Visual Studio i zmodyfikować istniejącą instalację, aby dodać obciążenie C++).
Jeśli używasz programu Visual Studio 2017 w wersji 15.3 lub nowszej, poniżej Visual C++ wybierz Pulpit systemu Windows , a następnie wybierz Kreator pulpitu systemu Windows .
Jeśli nie widzisz opcji Pulpit systemu Windows , oznacza to, że jesteś prawdopodobnie używasz starszej wersji Visual Studio. To w porządku. Zamiast tego wybierz Win32 a następnie w głównym oknie Win32 Console Application .
Na dole w polu Nazwa wpisz nazwę swojego programu (zastąp dotychczasową nazwę na HelloWorld). W polu Lokalizacja możesz opcjonalnie wybrać inną lokalizację, w której chcesz umieścić swój projekt. Wartość domyślna jest na razie w porządku.
Kliknij OK. Jeśli używasz starszej wersji programu Visual Studio, zostanie uruchomiony Kreator aplikacji Win32. Naciśnij Dalej.
W tym momencie powinieneś zobaczyć okno dialogowe kreatora, które wygląda mniej więcej tak (starsze wersje Visual Studio używają innego stylu, ale mają większość tych samych opcji):

Upewnij się, że odznaczyłeś Prekompilowany nagłówek.
Następnie kliknij OK lub Zakończ. Teraz Twój projekt został utworzony!
Eksplorator rozwiązań Visual Studio
Po lewej lub prawej stronie okna powinno pojawić się okno zatytułowane Eksplorator rozwiązań. W tym oknie Visual Studio stworzyło dla Ciebie rozwiązanie (Rozwiązanie „HelloWorld”). Wewnątrz niego, z pogrubioną nazwą, znajduje się Twój nowy projekt (HelloWorld). W ramach projektu Visual Studio utworzyło dla Ciebie wiele plików, w tym HelloWorld.cpp (pod elementem drzewa Source Files ). Możesz także zobaczyć inne pliki .cpp lub .h, które możesz na razie zignorować.

W edytorze tekstu zobaczysz, że program Visual Studio otworzył już HelloWorld.cpp i utworzył dla Ciebie kod. Wybierz i usuń cały kod, a następnie wpisz/skopiuj następujące polecenie do swojego IDE:
#include <iostream>
int main()
{
std::cout << "Hello, world!";
return 0;
}Aby skompilować program, naciśnij F7 (jeśli to nie zadziała, spróbuj Ctrl-Shift-B) lub przejdź do menu Kompiluj > Kompiluj Rozwiązanie. Jeśli wszystko pójdzie dobrze, w oknie Dane wyjściowe powinien pojawić się następujący komunikat:
1>------ Build started: Project: HelloWorld, Configuration: Debug Win32 ------ 1>HelloWorld.cpp 1>HelloWorld.vcxproj -> c:\users\alex\documents\visual studio 2017\Projects\HelloWorld\Debug\HelloWorld.exe ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
Oznacza to, że kompilacja przebiegła pomyślnie!
P: Wystąpił błąd C1010 („Błąd krytyczny C1010: nieoczekiwany koniec pliku podczas wyszukiwania prekompilowanego nagłówka. Czy zapomniałeś dodać „#include „stdafx.h”” do swojego źródła?”). Co teraz?
Zapomniałeś wyłączyć prekompilowane nagłówki podczas tworzenia projektu. Utwórz ponownie swój projekt (zgodnie z instrukcjami powyżej) i pamiętaj o wyłączeniu prekompilowanych nagłówków.
Aby uruchomić skompilowany program, naciśnij Ctrl-F5 lub przejdź do menu Debugowanie i wybierz Rozpocznij bez debugowania. Zobaczysz coś takiego:

To jest wynik twojego programu! Gratulacje, skompilowałeś i uruchomiłeś swój pierwszy program!
Powiązana treść
Gdy uruchamiasz program bezpośrednio z Visual Studio, możesz zobaczyć dodatkowy wiersz wyjściowy, który wygląda mniej więcej tak:
C:\Users\Alex\source\repos\Project6\Debug\Project6.exe (process 21896) exited with code 0.
To normalne. Program Visual Studio udostępnia dodatkowe informacje o tym, czy program zakończył działanie normalnie, czy nieprawidłowo. Omawiamy to szerzej w lekcji 2.2 -- Wartości zwracane przez funkcję (funkcje zwracające wartość).
Tworzenie projektu w Code::Blocks
Aby utworzyć nowy projekt, przejdź do menu Plik > Nowy > Projekt. Pojawi się okno dialogowe wyglądające następująco:

Wybierz Aplikację konsolową i naciśnij przycisk Idź (lub Utwórz) .
Jeśli zobaczysz okno dialogowe kreatora aplikacji konsolowej, naciśnij Dalej, upewnij się Wybrano C++ i naciśnij Dalej ponownie.
Teraz zostaniesz poproszony o nazwanie swojego projektu. Zatytułuj projekt HelloWorld. Możesz go zapisać gdziekolwiek chcesz. W systemie Windows zalecamy zapisanie go w podkatalogu na dysku C, na przykład C:\CBProjects.

Może pojawić się kolejne okno dialogowe z pytaniem, które konfiguracje chcesz włączyć. Wartości domyślne powinny być tutaj w porządku, więc wybierz Zakończ.
Teraz Twój nowy projekt został utworzony.
Po lewej stronie ekranu powinieneś zobaczyć okno Zarządzanie z wybraną zakładką Projekty . Wewnątrz tego okna zobaczysz folder Workspace , a w nim Twój projekt HelloWorld :

Wewnątrz projektu HelloWorld rozwiń folder Źródła i kliknij dwukrotnie plik „main.cpp”. Zobaczysz, że został już napisany dla Ciebie program hello world!
Zastąp to następującym:
#include <iostream>
int main()
{
std::cout << "Hello, world!";
return 0;
}Aby zbudować swój projekt, naciśnij Ctrl-F9 lub przejdź do menu Buduj > Buduj. Jeśli wszystko pójdzie dobrze, w oknie dziennika kompilacji powinien pojawić się następujący komunikat:
-------------- Build: Debug in HelloWorld (compiler: GNU GCC Compiler)--------------- mingw32-g++.exe -Wall -fexceptions -g -std=c++14 -c C:\CBProjects\HelloWorld\main.cpp -o obj\Debug\main.o mingw32-g++.exe -o bin\Debug\HelloWorld.exe obj\Debug\main.o Output file is bin\Debug\HelloWorld.exe with size 1.51 MB Process terminated with status 0 (0 minute(s), 0 second(s)) 0 error(s), 0 warning(s) (0 minute(s), 0 second(s))
Oznacza to, że kompilacja przebiegła pomyślnie!
Aby uruchomić skompilowany program, naciśnij Ctrl-F10 lub przejdź do Menu kompilacji > Uruchom. Zobaczysz coś podobnego do następującego:

To jest wynik twojego programu!
Dla użytkowników Linuksa
Użytkownicy Linuksa mogą potrzebować zainstalować dodatkowe pakiety przed skompilowaniem Code::Blocks. Więcej informacji znajdziesz w instrukcji instalacji Code::Blocks w lekcji 0.6 -- Instalowanie zintegrowanego środowiska programistycznego (IDE) .
Tworzenie projektu w VS Code
Aby rozpocząć nowy projekt, przejdź do menu Widok > Eksplorator (lub naciśnij Ctrl-Shift-E). Spowoduje to otwarcie panelu eksploratora. Jeśli wcześniej nie otwierałeś projektu, w panelu eksploratora powinieneś zobaczyć przycisk Otwórz folder - naciśnij go. Jeśli istnieje już otwarty projekt i chcesz rozpocząć nowy, wybierz Plik > Otwórz folder z górnego panelu nawigacyjnego.
W otwartym oknie dialogowym utwórz nowy folder o nazwie HelloWorld , a następnie wybierz ten folder. Ten folder będzie folderem Twojego projektu.
Następnie musimy utworzyć plik, który będzie zawierał nasz kod źródłowy. Wybierz Plik > Nowy plik w górnym panelu nawigacyjnym lub kliknij ikonęNowy plik po prawej stronie HELLOWORLD w panelu eksploratora.
Nazwij swój plik main.cpp i dodaj do niego następującą zawartość:
#include <iostream>
int main()
{
std::cout << "Hello, world!";
return 0;
}Aby skompilować main.cpp i uruchomić program, upewnij się, że main.cpp jest otwarty w głównym panelu, a następnie wybierz Uruchom > Uruchom Bez debugowania w górnym panelu nawigacyjnym lub kliknij v po prawej stronie ikony odtwarzania po prawej stronie karty main.cpp i wybierz Uruchom plik C/C++.
Następnie wybierz aktywną kompilację i debugowanie g++ file (użytkownicy systemu macOS powinni wybrać clang++ zamiast g++). Przełącz zakładkę z DEBUG CONSOLE Do TERMINAL na dole okna.
Jeśli terminal zawiera tekst „Hello, world!”, to gratulacje, właśnie uruchomiłeś swój pierwszy program w C++!
Jeśli używasz g++ w wierszu poleceń
W tym przypadku nie musisz tworzyć projektu. Po prostu wklej następujący tekst do pliku tekstowego o nazwie HelloWorld.cpp i zapisz plik:
#include <iostream>
int main()
{
std::cout << "Hello, world!";
return 0;
}W wierszu poleceń wpisz:
g++ -o HelloWorld HelloWorld.cpp
Skompiluje to i połączy plik HelloWorld.cpp. Aby go uruchomić, wpisz:
HelloWorld (lub ewentualnie ./HelloWorld), a zobaczysz wynik działania swojego programu.
Jeśli używasz innych IDE lub kompilatora internetowego
Będziesz musiał wymyślić, jak samodzielnie wykonać następujące czynności:
- Utwórz projekt konsoli (IDE tylko)
- Dodaj plik .cpp do projektu (tylko IDE, jeśli nie został on automatycznie utworzony)
- Wklej do pliku następujący kod:
#include <iostream>
int main()
{
std::cout << "Hello, world!";
return 0;
}- Skompiluj projekt
- Uruchom projekt
Jeśli kompilacja się nie powiedzie
W porządku, weź głęboki oddech. Prawdopodobnie uda nam się to naprawić. :)
Najpierw spójrz na komunikat o błędzie, który dał ci kompilator. Najczęściej będzie zawierał numer linii wskazujący, która linia była błędna. Sprawdź zarówno tę linię, jak i linie wokół niej i upewnij się, że nie ma literówek ani błędów ortograficznych. Upewnij się także, że nie podajesz numerów linii w swoim kodzie (powinien je podać twój redaktor).
Po drugie, przejrzyj pytania i odpowiedzi z lekcji 0.8 — Kilka typowych problemów z C++, ponieważ Twój problem może być tam omówiony.
Po trzecie, przeczytaj komentarze pod lekcją zawierającą przykład, który kompilujesz — ktoś mógł napotkać ten sam problem i podał rozwiązanie.
Na koniec, jeśli wszystkie powyższe zawiodły, spróbuj wyszukać komunikat o błędzie w swojej ulubionej wyszukiwarce. Prawdopodobnie ktoś inny spotkał się już z tym problemem i wiedział, jak go rozwiązać.
Jeśli Twój program działa, ale okno konsoli miga i natychmiast się zamyka
Po uruchomieniu programu konsolowego okno konsoli zostanie otwarte, a wszelkie dane wyjściowe programu zostaną zapisane w oknie konsoli.
Gdy program zakończy działanie, większość nowoczesnych IDE pozostawi konsolę otwartą (do momentu naciśnięcia klawisza), dzięki czemu będziesz mógł sprawdzić wyniki programu przed kontynuowaniem. Jednak niektóre starsze IDE automatycznie zamkną okno konsoli po zakończeniu działania programu. To generalnie nie jest to, czego chcesz.
Jeśli Twoje IDE automatycznie zamyka okno konsoli, możesz wykonać następujące dwa kroki, aby upewnić się, że konsola zatrzyma się na końcu programu.
Najpierw dodaj lub upewnij się, że następujące linie znajdują się u góry programu:
#include <iostream>
#include <limits>Po drugie, dodaj następujący kod na końcu funkcji main() (tuż przed instrukcją return):
std::cin.clear(); // reset any error flags
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // ignore any characters in the input buffer until we find a newline
std::cin.get(); // get one more char from the user (waits for user to press enter)To spowoduje, że Twój program aby poczekać, aż użytkownik naciśnie klawisz Enter przed kontynuowaniem (być może będzie konieczne dwukrotne naciśnięcie klawisza Enter), co da ci czas na sprawdzenie danych wyjściowych programu, zanim IDE zamknie okno konsoli.
Inne rozwiązania, takie jak powszechnie sugerowane system("pause") rozwiązanie mogą działać tylko w niektórych systemach operacyjnych i należy ich unikać.
Jeśli okno konsoli w ogóle się nie otwiera i program nie wydaje się uruchomiony, Twój program antywirusowy lub oprogramowanie anty-malware może również blokować wykonanie programu. W takim przypadku spróbuj tymczasowo wyłączyć skanery i sprawdź, czy problem został rozwiązany, lub wyklucz katalog projektu ze skanów.
Wskazówka
Jeśli używasz oprogramowania antywirusowego lub chroniącego przed złośliwym oprogramowaniem, rozważ wykluczenie katalogu projektu ze skanowań, ponieważ kompilacja i debugowanie mogą powodować fałszywe alarmy.
Jaka jest różnica między opcjami kompilacji, budowania, przebudowy, czyszczenia i uruchamiania/uruchamiania w moim IDE?
W lekcji 0.5 — Wprowadzenie do kompilatora, linkera i bibliotek pokazaliśmy, że aby stworzyć plik wykonywalny, który można uruchomić, każdy plik kodu w programie jest kompilowany do pliku obiektowego, a następnie pliki obiektowe są łączone w plik wykonywalny.
Gdy plik z kodem jest kompilowany, twoje IDE może buforować (zapisywać) wynikowy plik obiektowy na dysku. Pamięć podręczna pamięć podręczna (wymawiane jak „gotówka”) to miejsce przechowywania, w którym często używane dane są przechowywane w celu szybkiego ich późniejszego odzyskania. W ten sposób, jeśli w przyszłości program zostanie ponownie skompilowany, żaden plik kodu, który nie został zmodyfikowany, nie będzie musiał być ponownie kompilowany — zapisany w pamięci podręcznej plik obiektowy z ostatniego razu będzie można ponownie wykorzystać (zamiast konieczności jego ponownej generacji). Może to znacznie przyspieszyć czas kompilacji (kosztem niewielkiej ilości miejsca na dysku).
Mając to na uwadze, oto typowe działanie każdej z opcji:
- Build kompiluje wszystkie zmodyfikowane pliki kodu w projekcie lub obszarze roboczym/rozwiązaniu, a następnie łączy pliki obiektowe w plik wykonywalny. Jeśli od ostatniej kompilacji nie zostały zmodyfikowane żadne pliki kodu, ta opcja nic nie robi.
- Clean usuwa wszystkie buforowane obiekty i pliki wykonywalne, więc przy następnym budowaniu projektu wszystkie pliki zostaną ponownie skompilowane i utworzony nowy plik wykonywalny.
- Rebuild wykonuje operację „czyszczenia”, po której następuje „build”.
- Kompiluj rekompiluje pojedynczy plik kodu (niezależnie od tego, czy był wcześniej buforowany). Ta opcja nie wywołuje linkera ani nie tworzy pliku wykonywalnego.
- Uruchom/uruchom wykonuje plik wykonywalny z poprzedniej kompilacji. Niektóre IDE (np. Visual Studio) wywołają „kompilację” przed wykonaniem „uruchomienia”, aby upewnić się, że używasz najnowszej wersji kodu. W przeciwnym razie (np. Code::Blocks) po prostu wykona poprzedni plik wykonywalny.
Chociaż nieformalnie mówimy o „kompilowaniu” naszych programów, aby faktycznie skompilować nasze programy, zazwyczaj wybieramy w tym celu opcję „kompiluj” (lub „uruchom”) w naszym IDE.
Wnioski
Gratulacje, udało Ci się przejść przez najtrudniejszą część tego samouczka (instalowanie IDE i kompilacja pierwszego program)!
Nie martw się, jeśli nie rozumiesz, do czego służą poszczególne linie programu Hello World. Przeanalizujemy i wyjaśnimy szczegółowo każdy wiersz na początku następnego rozdziału.

