P-Programowanie

Wyświetlanie i pobieranie danych

Ostatania modyfikacja: 21 kwietnia 2019, kategoria: Kurs C++

Wyświetlanie tekstu na ekranie to podstawa podczas interakcji z użytkownikiem. Na takiej samej zasadzie działał nasz przykładowy program „hello world”. Do wyświetlania tekstu stworzone zostały gotowe funkcje. Ich składania jest bardzo prosta i sprowadza się jedynie do przekazania co konkretnie chcemy wyświetlić. Bardzo podobnie wygląda pobieranie danych.

Wyświetlanie na ekran – COUT

Obiekt cout służy do wyświetlania danych na ekranie konsoli. Jeżeli ta nazwa wydaje Ci się dziwna to wiedz, że pochodzi od słów „console output„. W naszym programie „hello world” za jej pomocą został wyświetlony napis powitalny:

Obiekt cout reprezentuje wyjście konsoli (czyli to co widzimy – czarne okienko). Następnie za pomocą operatora nazywanego strumieniem wyjścia << możemy na wyjście przekazać dowolną wartość. Może być to tekst, liczba lub jakaś istniejąca zmienna:

Dzięki przekazaniu na wyjście obiektu endl zostanie wstawiony znak nowej linii. Nic nie stoi na przeszkodzie aby cout wywołać wiele razy (każde wywołanie w nowej linii):

Wynikiem takiej operacji będzie kilka napisów każdy w nowej linii, na samym dole zobaczymy także liczbę.

Zwróć uwagę, że każda linia jest zakończona znakiem średnika. Jest to bardzo ważne w języku C++. Jeżeli zapomnisz średnika kompilator zgłosi Ci błąd error: expected ‚;’ before ‚cout’. Ogólna zasad brzmi, że średnik musi być zakończeniem każdej linii kodu w języku C++.

Za pomocą cout możemy wyświetlać także zmienne:

Za pomocą operatora strumienia możemy łączyć wiele wartość i wiele zmiennych razem:

Możesz sprawdzić jak działa program, wystarczy że uruchomisz poniższy kod:

Jest to przerobiona wersja naszego programu „hello world”.

Podczas wyświetlania na ekran możemy wyświetlić każdy rodzaj zmiennej, a nie tylko zmienne tekstowe. Jeżeli przekażesz na wyjście zmienną liczbową lub typ logiczny, wtedy zostanie on automatycznie (niejawnie) zamieniony na tekst i wtedy wyświetlony użytkownikowi.

Wczytywanie z ekranu – CIN

Obiekt cin służy do pobierania danych z konsoli (od użytkownika). Tak samo jak w przypadku cout jego nazwa pochodzi od słów „console input„, a obiekt reprezentuje wszystkie wartości „przychodzące”. Skoro parametrem dla strumienia wyjściowego była wartość tekstowa, liczbowa lub zmienna, co będzie parametrem dla obiektu strumienia wejściowego? Oczywiście zmienna.

Użycie obietu cin spowoduje pobranie wartości od użytkownika, ta wartość musi gdzieś zostać zapisana. Jedną możliwością jest zapisanie jej do jakiejś zmiennej. Możemy to zrobić za pomocą operatora strumienia wejścia >> (strzałki skierowane odwrotnie niż przy cout).

Przykładowo:

Ten prosty kod spowoduje utworzenie nowej zmiennej tekstowej, wyświetlenie napisu na konsolę i pobranie wartości od użytkownika z jednoczesnym zapisaniem tej wartości do zmiennej name.

Obsługa strumienia

Znając obiekty cin oraz cout oraz operatory strumienia wyjścia << i strumienia wejścia >> możesz łatwo pisać funkcjonalne programy. Zauważ, że bardzo łatwo zapamiętać symbole strumienia << oraz >>. Możesz sobie wyobrazić, że symbolizują one kierunek przepływu danych:

Operatory wyjścia i wejścia muszą zawsze zostać użyte tak jak na powyższym obrazku. Tak jak wspomniałem wcześniej, symbolizują one kierunek przepływu danych.  Kilka zasad:

  • strumień wyjścia (<<) zawsze musi kierować dane na konsolę (cout) (lub ewentualnie jakiegoś pliku)
  • strumień wejścia (>>) zawsze musi kierować dane od użytkownika (cin) do jakiejś zmiennej

Jeżeli zastanowisz się nad strzałkami z powyższego obrazka, wszystko powinno być dla Ciebie jasne i łatwe do zapamiętania. Obiekty CIN i COUT reprezentują to co widzi lub to co wpisuje użytkownik, a operator strumienia ustala kierunek przepływu.

Prosty demonstracyjny program:

Działający program wygląda następująco:

To już wszystko! Zapraszam do kolejnej lekcji o nazwie pierwszy duży program

Użytkownik Karol napisał:


Nikt jeszcze nie skomentował tego artykułu. Co o nim sądzisz?

Zachęcam Cię do zostawienia komentarza!

Ilość znaków: 0