Przejdź do głównej zawartości

Pierwszy Program » Częste Problemy

Na koniec warto zwrócić uwagę co może spowodować błąd kompilacji, lub czego nie powinniśmy robić, żeby kod był zgodny z dobrymi praktykami.

Pomijanie std::

Pominięcie std:: bez wcześniejszego użycia instrukcji using spowoduje błąd.

🔴 Treść błędu:

error: ‘cout’ was not declared in this scope; did you mean ‘std::cout’?

🖼 Ilustracja błędu:

Illustration of the error - omitting std

👌 Rozwiązanie problemu

Dodanie instrukcji using std::cout; na górze funkcji main:

#include <iostream>
int main() {
using std::cout;
cout << "Witaj, Świecie!";
}

Nie dołączenie odpowiedniego nagłówka

Bardzo łatwo (nawet dla ekspertów) zapomnieć o #include.

🔴 Treść błędu:

error: ‘cout’ is not a member of ‘std’

🖼 Ilustracja błędu:

Illustration of the error - missing include

Brak średników ;

Początkujący często zapominają o średnikach (;) na końcach instrukcji.
Prześledź dokładnie przykłady kodu, podawane w tej lekcji zwracając uwagę, gdzie powinny one się znaleźć.

🔴 Treść błędu:

error: expected `;` before (...)

🖼 Ilustracja błędu:

Ilustracja błędu - brak średnika
Niedokładna treść błędów

Kompilatory próbując wykryć gdzie brakuje średnika często muszą zgadywać. Z tego powodu, jeśli jesteś pewny, że w podanej przez kompilator linii nie brakuje średnika, sprawdź również kilka linijek, które otaczają tą podaną.

Dodatkowo, brakujące średniki mogą powodować inne niezwiązane błędy niżej w Twoim kodzie. Zazwyczaj najbardziej pomocna jest treść pierwszego błędu wystosowanego przez kompilator.

Niezakończony tekst

Tekst zawsze zawieramy pomiędzy znakami podwójnego cudzysłowia "TUTAJ WSTAWIAMY TEKST!".
Jeśli zapomnimy go zakończyć drugim znakiem, C++ będzie myślał, że reszta naszego programu to tekst

🔴 Treść błędu

error: missing terminating " character

🖼 Ilustracja błędu

Ilustracja błędu - missing quote

Wyświetlanie znaku "

Może Cię kusić, aby umieścić cudzysłów wewnątrz komunikatu, gdy wypisujesz go na konsolę. Pamiętaj jednak, że C++ traktuje wszystko, co znajduje się wewnątrz "...", jako tekst.

Z tego powodu, jeśli napiszesz:

"Cześć! Nazywam się "Diego", witaj w kolonii!"

C++ zinterpretuje to jako

"TEKST" KOD C++ "TEKST"

Możesz temu zapobiec dodając backslash (\) przed cudzysłowem, by użyć tzw. escape-sequence.

"Cześć! Nazywam się \"Diego\", witaj w kolonii!"

🔴 Treść błędu

error: unable to find string literal operator ‘operator""Diego’ with ‘const char [20]’, ‘long unsigned int’ arguments

🖼 Ilustracja błędu:

TODO

Niepomocne błędy

Powyższe komunikaty o błędach nie są zbyt pomocne! Realną wskazówką powinien być fakt, że program traktuje to, co ma być tekstem, jako kod (widać to w edytorze kodu).

Pierwszy Program » Częste Problemy

Na koniec warto zwrócić uwagę co może spowodować błąd kompilacji, lub czego nie powinniśmy robić, żeby kod był zgodny z dobrymi praktykami.

Pomijanie std::

Pominięcie std:: bez wcześniejszego użycia instrukcji using spowoduje błąd.

🔴 Treść błędu:

error: ‘cout’ was not declared in this scope; did you mean ‘std::cout’?

🖼 Ilustracja błędu:

Illustration of the error - omitting std

👌 Rozwiązanie problemu

Dodanie instrukcji using std::cout; na górze funkcji main:

#include <iostream>
int main() {
using std::cout;
cout << "Witaj, Świecie!";
}

Nie dołączenie odpowiedniego nagłówka

Bardzo łatwo (nawet dla ekspertów) zapomnieć o #include.

🔴 Treść błędu:

error: ‘cout’ is not a member of ‘std’

🖼 Ilustracja błędu:

Illustration of the error - missing include

Brak średników ;

Początkujący często zapominają o średnikach (;) na końcach instrukcji.
Prześledź dokładnie przykłady kodu, podawane w tej lekcji zwracając uwagę, gdzie powinny one się znaleźć.

🔴 Treść błędu:

error: expected `;` before (...)

🖼 Ilustracja błędu:

Ilustracja błędu - brak średnika
Niedokładna treść błędów

Kompilatory próbując wykryć gdzie brakuje średnika często muszą zgadywać. Z tego powodu, jeśli jesteś pewny, że w podanej przez kompilator linii nie brakuje średnika, sprawdź również kilka linijek, które otaczają tą podaną.

Dodatkowo, brakujące średniki mogą powodować inne niezwiązane błędy niżej w Twoim kodzie. Zazwyczaj najbardziej pomocna jest treść pierwszego błędu wystosowanego przez kompilator.

Niezakończony tekst

Tekst zawsze zawieramy pomiędzy znakami podwójnego cudzysłowia "TUTAJ WSTAWIAMY TEKST!".
Jeśli zapomnimy go zakończyć drugim znakiem, C++ będzie myślał, że reszta naszego programu to tekst

🔴 Treść błędu

error: missing terminating " character

🖼 Ilustracja błędu

Ilustracja błędu - missing quote

Wyświetlanie znaku "

Może Cię kusić, aby umieścić cudzysłów wewnątrz komunikatu, gdy wypisujesz go na konsolę. Pamiętaj jednak, że C++ traktuje wszystko, co znajduje się wewnątrz "...", jako tekst.

Z tego powodu, jeśli napiszesz:

"Cześć! Nazywam się "Diego", witaj w kolonii!"

C++ zinterpretuje to jako

"TEKST" KOD C++ "TEKST"

Możesz temu zapobiec dodając backslash (\) przed cudzysłowem, by użyć tzw. escape-sequence.

"Cześć! Nazywam się \"Diego\", witaj w kolonii!"

🔴 Treść błędu

error: unable to find string literal operator ‘operator""Diego’ with ‘const char [20]’, ‘long unsigned int’ arguments

🖼 Ilustracja błędu:

TODO

Niepomocne błędy

Powyższe komunikaty o błędach nie są zbyt pomocne! Realną wskazówką powinien być fakt, że program traktuje to, co ma być tekstem, jako kod (widać to w edytorze kodu).