
Najkrótszy program: Hello world
Utwórz plik main.cpp (zwykły edytor tekstu wystarczy) i wpisz:
#include <iostream>
int main() {
std::cout << "Witaj, swiecie!\n";
}
Co robi każdy element:
Przesuń tabelę, aby zobaczyć wszystkie kolumny →
| Fragment | Znaczenie |
|---|---|
#include <iostream> | dołącza nagłówek ze strumieniami wejścia i wyjścia, w tym std::cout i std::cin |
int main() | funkcja main, od której zaczyna się wykonanie programu |
std::cout << "..." | wysyła tekst na standardowe wyjście, zwykle do okna konsoli |
\n | znak nowego wiersza |
; | kończy instrukcję |
Program zawsze musi mieć funkcję main. Według cppreference: „A program shall contain a global function named main, which is the designated start of the program in hosted environment.” Na końcu main nie musisz pisać return 0;: jeśli sterowanie dojdzie do końca funkcji bez instrukcji return, skutek jest taki, jakby wykonano return 0;.
Obiekt std::cout odpowiada standardowemu strumieniowi wyjścia, a std::cin standardowemu strumieniowi wejścia. Przedrostek std:: oznacza, że nazwa pochodzi z biblioteki standardowej.
Kompilacja i uruchomienie
Plik z kodem nie jest jeszcze programem: kompilator musi go zamienić w plik wykonywalny. Szczegóły czterech etapów tego procesu opisuje osobny poradnik; tu wystarczą polecenia.
Przesuń tabelę, aby zobaczyć wszystkie kolumny →
| Środowisko | Gdzie wpisać polecenie | Kompilacja | Uruchomienie |
|---|---|---|---|
| GCC (g++) | terminal w katalogu z plikiem | g++ main.cpp -o program | ./program (w Windows program.exe) |
| Microsoft C++ (MSVC) | „Developer Command Prompt” z Visual Studio | cl /EHsc main.cpp | main (powstaje main.exe) |
W GCC pliki C++ mają zwyczajowo rozszerzenie .cpp, a opcja -o wskazuje nazwę pliku wynikowego. W MSVC zwykły wiersz poleceń nie wystarczy: dokumentacja Microsoftu wyjaśnia, że bez przygotowania nie użyjesz Microsoft C++ w zwykłym oknie wiersza poleceń, a do tego służą skróty „Developer Command Prompt”. Opcja /EHsc włącza standardową obsługę wyjątków C++, a cl.exe tworzy plik .obj, po czym uruchamia konsolidator, który tworzy plik .exe.
Po uruchomieniu program powinien wypisać:
Witaj, swiecie!
W tekście programu użyto liter bez polskich znaków. Wyświetlanie polskich liter w konsoli zależy od jej ustawień, więc w pierwszym programie prościej ich uniknąć.
Drugi program: wczytanie liczby z klawiatury
Zmodyfikuj program tak, żeby pytał o liczbę i wypisywał jej kwadrat:
#include <iostream>
int main() {
int liczba;
std::cout << "Podaj liczbe: ";
std::cin >> liczba;
std::cout << "Kwadrat: " << liczba * liczba << '\n';
}
Operator >> pobiera ze strumienia std::cin wartość i zapisuje ją w zmiennej liczba. Dokumentacja opisuje to jako wydobycie wartości (z pominięciem początkowych białych znaków). Dla wpisanej liczby 7 program powinien wypisać Kwadrat: 49. Operator << można łączyć w łańcuch, jak w ostatnim wierszu, gdzie po tekście wypisywany jest wynik mnożenia, a potem znak nowego wiersza.
Zmienna liczba ma typ int, więc oczekuje liczby całkowitej. Jeśli wpiszesz coś, co nie jest liczbą, wczytanie się nie powiedzie. Pełna obsługa takich błędów wykracza poza pierwszy program.
Najczęstsze błędy początkujących
- Brak średnika na końcu instrukcji: kompilator zgłasza błąd składni i podaje numer wiersza.
- Brak
#include <iostream>: nazwystd::coutistd::cinnie są wtedy znane. - Pominięte
std::: bez przedrostkastd::(i bez dodatkowej dyrektywy)coutnie zostanie rozpoznany. - Plik zapisany z rozszerzeniem
.txt: nadaj plikowi rozszerzenie.cpp; w Notatniku przy zapisie wybierz „Wszystkie pliki”. - Poprzedni program wciąż działa: po zmianie kodu skompiluj go ponownie, bo plik wykonywalny nie zmienia się sam.
Zobacz też: Pętla for, Scratch 3, Jak uczyć się programowania.
Najczęstsze pytania (FAQ)
Jak napisać pierwszy program w C++?
Zapisz w pliku main.cpp program z #include <iostream> i funkcją main, w której std::cout wypisuje tekst. Skompiluj go (g++ main.cpp -o program) i uruchom.
Czy muszę mieć return 0; w main?
return 0; w main?Nie. Jeśli sterowanie dojdzie do końca main bez return, efekt jest taki, jakby wykonano return 0;. Wielu autorów mimo to pisze return 0; jawnie.
Czym się różni std::cout od std::cin?
std::cout od std::cin?std::cout wysyła dane na standardowe wyjście (zwykle konsolę), a std::cin pobiera je ze standardowego wejścia (zwykle z klawiatury). Pierwszy używa operatora <<, drugi >>.
Czy mogę skompilować program bez instalowania kompilatora?
Tak, do krótkich przykładów służą kompilatory działające w przeglądarce. Własne projekty wygodniej tworzyć z kompilatorem zainstalowanym lokalnie.
Co oznacza /EHsc w poleceniu cl?
/EHsc w poleceniu cl?To opcja MSVC włączająca standardową obsługę wyjątków C++. Microsoft podaje ją w poleceniu kompilacji przykładowego programu „Hello, World”.