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:

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello world!" << endl;
    return 0;
}

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:

cout << "some text" << endl;

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):

cout << "some text1" << endl;
cout << "some text2" << endl;
cout << "some text3" << endl;
cout << 12345 << endl;

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:

string name = "Karol";
cout << "Hello " << name;

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

string name = "Karol";
int age = 28;

cout << "Hello " << name << ". You are " << age << " years old!";

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

#include <iostream>

using namespace std;

int main()
{
    string name = "Karol";
    int age = 28;

    cout << "Hello " << name << ". You are " << age << " years old!";
    return 0;
}

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:

string name;
cout << "Podaj imie:" << endl;
cin >> name;

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:

#include <iostream>

using namespace std;

int main()
{
    string name;

    cout << "Podaj imie:" << endl;
    cin >> name;

    cout << "Nazywasz sie: " << name << endl;

    return 0;
}

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