Linux E X P R E S

Facebook

Programovanie v jazyku C++: Stream cin

cplusplus.png

V minulom diele sme rozoberali stream cout na výstup z programu. V tomto článku rozoberieme vstup, ktorý reprezentuje stream cin. Takto by sme ukončili nutný základ, pre ďalšie pokračovanie seriálu.


Stream cin

Tak, ako stream cout, tak i cin je objekt. Jeho použitie je:

int hmotnost;
cin >> hmotnost;

Pre stream cin sa využíva operátor >>. Tento operátor získava znaky zo vstupného prúdu. Za týmto operátorom dáte meno premennej, na ktorú sa bude vzťahovať hodnota, ktorú zadáte na klávesnici.

Stream cin zaznamenáva vstup od užívateľa do programu. Podobne ako cout, aj cin je inteligentný objekt, narozdiel od funkcie scanf() z jazyka C. Stream cin automaticky konvertuje vstup z klávesnice do tvaru zadeklarovanej premennej. V prípade našom, ak premenná hmotnosť je typu int, tak aj hodnota, ktorú zadáte, sa automaticky pretypuje na int.

Najlepšie si to ukázať na príklade.

Príklad 1: Použitie stream cin a preopakovanie stream cout

#include <iostream>
using namespace std;
int main()
{
    cout << "Zdraví ťa program HAL 9000, superinteligetná umelá bytosť\n";
    cout << "Začnime s menším programom výučby z jazyka C++: stream cout a cin\n";
    cout << "Chcem, aby sa s teba stal špecialista na jazyk C++ a raz naprogramoval 
v tomto jazyku moje dvojča ;)\n";
    cout << "\n";
    cout << "Ako sa voláš a aký je tvoj vek?\n";
    string meno;
    int vek;
    cout << "\n";
    cout << "Zadaj tvoje meno: ";
    cin >> meno;
    cout << "\n";
    cout << "Zadaj tvoj vek: ";
    cin >> vek;
    cout << "\n";
    cout << "Aaaa, tak ty sa voláš "<<meno<<"a tvoj vek je "<<vek<<"\n";
    cout << "Co povieš na to "<<meno<<"si ukázať par fintičiek, ktoré ťa čakajú 
v budúcich častiach seriálu o jazyku C++?\n";
    cout << "\n";
    cout << "Ak súhlasíš, odpovedz ano, ak nesúhlasíš, odpovedz nie: ";
    string odpoved;
    cin >> odpoved;
    cout << "\n";
    if (odpoved == " nie" )
    {
        cout << "Sklamal si. S tvojim prístupom to nikam nedotiahneš!";
        return 0;
    }
    if (odpoved == "ano")
    {
        cout << "Fajn, potešil si ma. Poďme sa pohrať s racionálnymi číslami\n";
        cout << "\n";
        cout << "Zadaj racionálne ľubovolne číslo: ";
        double vCislo;
        cin >> vCislo;
        cout << "Ak vynásobíme tvoje zadane číslo "<<vCislo<<" samou sebou, dostaneme: 
"<<vCislo*vCislo<<"\n";
        cout << "Fajn, viem, ze som ti dal zabrať, na dnes stačilo, co povieš?\n";
        cout << "Ako si spokojný so svojim vyučujúcim(so mnou)?\n";
        int znamka;
        cout << "Ohodnoť vyučujúceho známkou od 1 do 5 ako v škole: ";
        cin >> znamka;
        cout << "\n";
        if (znamka == 1 || znamka == 2)   // symbol ||  znamená, že ak jedna z podmienok 
nastane, tak sa vykonajú jednotlivé príkazy v tele podmienky 
        {
            cout << "Som rad, ze si spokojný ;)\n";
            cout << "Uvidíme sa nabudúce, maj sa\n";
            return 0;
        }
        else cout << "Je mi ľuto, ze sa ti nepáčil malý kurz, budem sa nabudúce 
viac snažiť ;)\n";
        return 0;
    }
    else cout << "Ani písať poriadne nevieš, za trest si program spustiš ešte raz, 
zatiaľ sa maj!";
    return 0;
}

V príklade som využil stream cout, cin a podmienky. Podmienky sa určite objavia v ďalších častiach seriálu a sú veľmi dôležitou súčasťou moderného vývoja softvéru.

Myslím, že príklad dá nováčikom potrebnú prax pre zvládnutie stream coutcin. V ďalších častiach sa už k tomu nebudeme zaoberať.

Funkcia scanf()

Tak, ako printf vieme využiť v jazyku C++ na výstup programu, aj funkciu scanf vieme využiť ako vstup v C++.

Nezabudnite na hlavičkový súbor #include <stdio.h>.

2.príklad: použitie funkcie scanf() a preopakovanie funkcie printf()

#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
    int vek;
    printf("Zadajte váš vek: ");
    scanf("%d", &vek);  
    printf("Váš vek je %d\n", vek);
    return 0;
}

Diskuze (12) Nahoru