Stream cout
Máme nejaký program, ktorý niečo vykonáva, napríklad sčítava nejaké čísla. Bolo by zvláštne robiť program, v ktorom by používateľ neuvidel napríklad výsledok sčítania.
Každý program v jazyku C++ (i vo všetkých ostatných programovacích jazykoch) podporuje vstup a výstup. Vstup a výstup radíme ako interakciu s používateľom. Vstupom rozumieme, že zadáme nejaké údaje programu, ktoré vyhodnotí a výstupom bude napríklad nejaká tabuľka, graf alebo hodnotu, ktorú potrebujeme.
Stream cout je práve na to, aby zobrazil údaj na výstupnom zariadení, akým je napríklad monitor. Ukážme si, ako by taká deklarácia príkazu mohla vyzerať a trošku si o tom povieme viac.
cout << "Jupiter je najväčšia planéta v Slnečnej sústave";
V časti uzatvorená znakom " je reťazec, ktorý sa zobrazí na obrazovke. Reťazec definujeme ako skupinu viacerých znakov. Operátor << posiela reťazec k streamu cout.
Identifikátor cout (std::cout)
je globálna statická inštancie triedy std::ostream
. Ale to veľa predbiehame, k práci s objektmi sa dostaneme neskôr.
Vo všeobecnosti má cout
tu vlastnosť, že vie, ako má zobraziť reťazce, číselné hodnoty a samostatné znaky.
Vráťme sa ešte k operátoru <<. Tí, ktorí sú zbehlejší v programovacích jazykoch alebo tí, čo prechádzajú z jazyku C na C++, by mali poznať, že << je binárny posun do ľavá. Stream cout
využíva << na iný účel, dochádza tak k preťaženiu.
Preťaženie sa rozumie tak, že ten istý symbol má rôzne významy. Ak budeme preberať objektovo orientovaný štýl programovania v jazyku C++, uvidíte, že môžete sami preťažovať napríklad funkcie.
Premenné a stream cout
Majme jednoduchý príklad:
#include <iostream> using namespace std; int main() { int vaha = 38; cout << vaha; return 0; }
V tomto príklade by sa nezobrazilo slovo vaha, ale hodnota premennej vaha, čiže číslo 38. Ak by sme napísali cout << "vaha";
vtedy áno, na výstupe by bolo vaha. Treba odlišovať reťazce od mená premenných.
Kombinácia reťazcov a premenných
Ako môžeme využiť stream cout
je napríklad takto:
#include <iostream> using namespace std; int main() { int rychlost = 105; cout << "Dnes je veterne, rýchlosť vetra miestami dosahuje " << rychlost << "km/h."; return 0; }
Ak po reťazci chceme vypísať premennú (platí i naopak), dáme symbol <<. Napríklad v programovacom jazyku Java, má funkciu spájania textu s premennými operátor +.
Funkcia printf()
V jazyku C++ je možné využívať aj z jazyka C funkciu printf()
. Ukážme si to na menšej modifikácii z predchádzajúceho príkladu.
#include <iostream> #include <stdio.h> using namespace std; int main() { int rychlost = 105; printf("Dnes je veterne, rýchlosť vetra miestami dosahuje %d km/h", rychlost); return 0; }
%d
znamená typ premennej, ktorú chceme vytlačiť na obrazovke. Takto jednoducho odkazujeme na premennú rýchlosť.
Funkcia printf()
oproti cout
je menej inteligetná. Ak by ste sa pozabudli a miesto celočíselnej deklarácie %d
napíšete, že je typu reťazec, čiže %s
, nevšimne si funkcia printf()
chybu.
Stream cout ale vie rozlíšiť typ premennej. Túto vlastnosť má vďaka preťaženiu operátora << (odlišné implementácie pre rôzne typy dát). Preto je pohodlnejšie využívať cout
.
Ak by ste aj chceli využívať funkciu printf()
, nezabudnite vložiť príslušný hlavičkový súbor pomocou #include <stdio.h>
.
Na záver príklad
#include <iostream> using namespace std; int main() { int a = 52; //deklarácie premenných int b = 44; cout << "Sčítanie dvoch čísel " << a << " a " << b << " je: " << a+b << "\n"; // zobrazí sa na výstupe cout << "Odčítanie dvoch čísel " << a << " a " << b << " je: " << a-b << "\n"; cout << "Násobenie dvoch čísel " << a << " a " << b << " je: " << a*b << "\n"; cout << "Delenie dvoch čísel " << a << " a " << b << " je: " << a/b << "\n"; return 0; }