Co dokładnie oznacza std::cout<<"Witaj Swiecie!"<<'\n''; w C++ ?

Cześć!

W poprzednim poście zajmowaliśmy się napisanie i skompilowaniem prostego projektu. Jeśli uważanie czytałeś, wiesz już nie tylko jak to napisać, ale także co dokładnie robiliśmy.

Teraz następuje więc pora na wytłumaczenie kodu. Przepiszmy go jeszcze raz i wytłumaczmy linijka po linijce.

#include <iostream>

int main()
{
std::cout<<"Witaj Swiecie!"<<'\n'';

}

Zacznijmy od linijki pierwszej.

#include <iostream>

Co to jest ?
Instrukcja preprocesora. Spokojnie, to nie takie trudne. Znaczek #oznacza właśnie definicję preprocesora. Czyli coś, co wykonuje się jak sama nazwa mówi przed właściwym wykonaniem programu. Pre- Przed. Więc już wiemy, że wykonuje coś przed. A co znaczy pozostała część ?
Słówko include oznacza po angielsku dołącz. Co dołącz ? To co znajduje się w dalszej części instrukcji. Dalej znajdujemy <iostream>. Co to więc oznacza ?
Dołączenie biblioteki iostream. Czym jest biblioteka iostream ? To proste. Słówko IO - Input Output. Czyli coś co wchodzi i wychodzi. W komputerze mamy urządzenia wejścia i wyjścia. Tak samo w programowaniu coś wchodzi i wychodzi. Stream oznacza strumień. Strumień, czyli coś co płynie. Tak samo w komputerze płyną dane wejściowe i wyjściowe. Proste prawda ?

Zajmijmy się więc tym co może Cię zaciekawić, czyli dalszą częścią programu. Dalej widzimy linijkę:

int main()

Czym jest int ? Jest skrótem od integralny. Czyli całościowy. Funkcja jest więc wartościową całkowitą. Dalej mamy, main, co oznacza- główny. Nawiasy okrągłe wskazują, że jest to tak zwana funkcja. Funkcja main. Czyli funkcja główna. Tak jak w matematyce funkcja coś wykonuje, tak samo tutaj coś wykonuje. W main znajdują się instrukcje do wykonania, które są wykonywane jedna po drugiej, na samym początku programu.

Przejdźmy więc niżej. Widzimy klamry, których początek oznacza początek funkcji main, a ostatnia klamra oznacza jej zakończenie. Co znajdujemy więc w środku ?

std::cout<<"Witaj Swiecie!"<<'\n';

Co to w ogóle oznacza ?
std::cout Oznacza: std - standardowe. Dalej jest ::, który oznacza operator zasięgu. Czyli wyciągamy coś standardowego. W tym przypadku cout. Czym on jest ?
Po angielsku brzmi to: "the standard console output device". Tłumacząc to na język polski, mamy standardowe urządzenie wyjściowe konsoli. Wypisuje to tekst podany dalej. Co oznacza << ?
Oznacza wyrzuć to na ekran konsoli. Istnieje również wersja w drugą stronę. Czyli: >>, który oznacza wrzucenie coś z klawiatury do komputera(Tak naprawdę to << oraz >> to przeciążone operatory przesunięcia bitowego w lewo i w prawo. To tylko ciekawostka). 

Następnie widzimy:

"Witaj Swiecie!"

Jak nie trudno się domyślić wypisuje to na ekran "Witaj Swiecie!". Dlaczego w cudzysłowach ?
Komputer to maszyna liczbowa. Język ludzki jest dla Niej nieznany. Dlatego nie wpływa to na jej działanie, ani na instrukcje. Jest to komunikat tylko dla użytkownika. Może zaciekawić jeszcze jedna kwestia. Dlaczego nie używamy polskich znów i nie napiszemy "Witaj Świecie". Otóż polskie znaki nie są standardem w tablicy ASCII, którą na pewno kiedyś się zajmiemy. Teraz wystarczy Nam wiedzieć, że polskie znaki, to jest koń trojański programistów.

Dalej widzimy:
'\n'
Co to oznacza ?
new line. Czyli nowa linia. Dlaczego nie możemy wpisać entera ?
W różnych systemach kodowanie znaku nowej linii jest różne. Są to odpowiednie kombinacje CR(Carriage Return) oraz LF(Line Feed). Dla przykładu na Naszym linuksie jest to tylko LF. Na Windowsie CRLF. Dlatego właśnie musimy wstawiać znak nowej linii.

Teraz już wiemy, co oznacza ten kod. Do zobaczenia!

Komentarze

  1. HOZEI <5AeN?
    XvL'q [-DAPFu | AU
    UQ1Ec>> $zra-BCU
    SOOtU; ES-
    NOEMI

    . COTES-SOjO" ED
    POEOPOEOPOEOPO
    EOPOEOPOEOPOED
    POEOPDEOP DyZei
    | zoirsY>aI
    Vo = k&CALA@Bil
    YL$DUC=reT ly$2

    EDUvOat-
    108atzi@$n'z, e
    rLIN[ A$0
    8 'ZPR* CO
    tai *r . pB-
    ZO. u; epDoHcoI

    *[ 6 xpZ mkiaiDI\
    auli Paw, H&E: C
    . cS"SIOrs
    -180uo60, 1IN-6
    - (EjIU...,

    OdpowiedzUsuń

Prześlij komentarz

Popularne posty z tego bloga

Klasy, Przestrzenie nazw, Nonlocal, Global i Local. Czy Python ma zmienne prywatne ?

Przeciążanie operatorów w C++