12
DÁTOVÉ PRÚDY DÁTOVÉ PRÚDY KONZOLA KONZOLA Streams

Dátové Prúdy konzola

  • Upload
    nubia

  • View
    44

  • Download
    2

Embed Size (px)

DESCRIPTION

Streams. Dátové Prúdy konzola. Čo je prúd (stream). Mnoho periférií v počítači pracuje na princípe sériového toku dát. Klávesnica – stlačené klávesy (znaky) postupujú v poradí stlačenia do počítača (programu) Obrazovka – z obrazuje postupne prijaté znaky (text) - PowerPoint PPT Presentation

Citation preview

Page 1: Dátové Prúdy konzola

DÁTOVÉ PRÚDYDÁTOVÉ PRÚDYKONZOLAKONZOLA

Streams

Page 2: Dátové Prúdy konzola

Čo je prúd (stream)Čo je prúd (stream)Mnoho periférií v počítači pracuje

na princípe sériového toku dát.Klávesnica – stlačené klávesy

(znaky) postupujú v poradí stlačenia do počítača (programu)

Obrazovka – zobrazuje postupne prijaté znaky (text)

Pevný disk – ukladá prijaté dáta na úložné médium, resp. číta uložené dáta a v pôvodnom poradí ich posiela do počítača

....

Page 3: Dátové Prúdy konzola

Čo je prúd (stream)Čo je prúd (stream)Stream – „zapúzdrenie“ toku dátZapúzdrenie = ovládanie toku

dát v programe je v podstate rovnaké nezávisle na jeho zdroji

Jednotnosť = toky dát sa ovládajú rovnakými príkazmi + niekoľkými špecifickými príkazmi

Page 4: Dátové Prúdy konzola

Vstup z klávesnice (zo zdroja Vstup z klávesnice (zo zdroja dát)dát)cin – objekt pre obsluhu toku dát z

klávesniceJe súčasťou knižnice <iostream>cin >> premenná – extrahuje z toku

dát jednu časť (číslo, text) a uloží ju do premennej.

Výraz (cin >> premenná)je true, ak sa operácia podarila, inak je false

Separátorom hodnoty je ľubovoľný prázdny znak (medzera, tabulátor ‘\t’, nový riadok)

Extrahovanie možno reťaziť:cin >> a >> b >> c;

Page 5: Dátové Prúdy konzola

Vstup z klávesnice (zo zdroja Vstup z klávesnice (zo zdroja dát)dát)Ak sú čísla oddelené iným znakom

(napríklad čiarkou) môžeme tento znak načítať do pomocnej premennej typu char, a tým ho ignorovať

Príklad: na klávesnici napíšeme 1.5,2.7,3.1

float a,b,c;char x;cin >> a >> x >> b >> x >> c;

Page 6: Dátové Prúdy konzola

Vstup z klávesnice (zo zdroja Vstup z klávesnice (zo zdroja dát)dát)cin.peek() – vráti prvý znak (ktorý

práve čaká na načítanie), ale nenačíta ho

cin.putback(znak) – vráti znak späť do toku dát, budeme ho môcť neskôr načítať

cin.ignore()- načíta (a ignoruje) všetky znaky, ktoré boli pripravené v toku dát. Používa sa, ak chceme ignorovať všetko, čo užívateľ medzičasom nastláčal na klávesnici

Page 7: Dátové Prúdy konzola

Vstup z klávesnice (zo zdroja Vstup z klávesnice (zo zdroja dát)dát)cin.get() – načíta iba jeden znakcin.eof() – vráti true, ak prišiel znak

konca toku dát (Windows: CTRL+Z, iné systémy aj CTRL+D)

Správanie sa pri týchto metódach závisí čiastočne od zdroja dát a aj od operačného systému

while(!cin.eof()) { a=cin.get(); cout << a << " "; }

Page 8: Dátové Prúdy konzola

Výstup na obrazovku (do Výstup na obrazovku (do úložiska dát)úložiska dát)

cout – objekt pre obsluhu toku dát smerujúceho na obrazovku

Je súčasťou knižnice <iostream>cout << premenná – vypíše obsah

premennej na obrazovkuVýpis možno reťaziť:cout << a << b << c;

Premenná sa vypíše v prirodzenom tvare (číslo ako jeho hodnota, char[] ako text, char ako písmeno, &x ako adresa v pamäti

Page 9: Dátové Prúdy konzola

Výstup na obrazovku (do Výstup na obrazovku (do úložiska dát)úložiska dát)

Formátovanie výpisuAk chceme obsah premennej

interpretovať ako premennú iného typu – tzv. cast-operátor:

char znak = ‘A’;cout << znak << “ “ << (int)znak ;

Premenná znak je typu char,

vypíše sa preto písmeno APre potreby tejto operácie (výpisu) sa premenná znak prerobí na typ int, vypíše

sa teda číslo 65

Page 10: Dátové Prúdy konzola

Výstup na obrazovku (do Výstup na obrazovku (do úložiska dát)úložiska dát)

Cast-operátor môžeme použiť hocikde v programe, kde to potrebujeme

Typická situácia – podiel dvoch celých čísel:

int i=1, j=2;float podiel;

podiel = i/j;

podiel = (float)i/(float)j;

V algebraickom výraze sú obe premenné typu int, aj

výsledok bude int, čiže 0 !!!!!

Pre potreby tejto operácie (podielu) sa obe premenné prerobia na typ float, výsledok bude

tiež float, čiže 0.5

Page 11: Dátové Prúdy konzola

Výstup na obrazovku (do Výstup na obrazovku (do úložiska dát)úložiska dát)

Úprava formátu vypisovaných číselKnižnica <iomanip>Do toku dát „primiešame“ povely pre

zmenu formátovaniaPovel platí, kým ho nezmeníme (teda

aj pre ďalšie výpisy)float a=314.15926535;cout << setprecision(6)<< a;

cout << setprecision(2) << a;

Zobrazia sa iba dve platné číslice. U čísla 310 je nejasný počet platných číslic, preto výpis je automaticky vo

vedeckej notácii: 3.1e+002

Odteraz sa čísla vypisujú na 6 platných číslic, vypíše sa:

314.159

Page 12: Dátové Prúdy konzola

Výstup na obrazovku (do Výstup na obrazovku (do úložiska dát)úložiska dát)

cout << fixed << a;

cout << scientific << a;

Odteraz sa čísla vypisujú ako štandardné desatinné čísla s pevným počtom desatinných

miest, vypíše sa: 314.16 (stále platí setprecision(2))

Odteraz sa čísla vypisujú vo vedeckej notácii na pevný počet desatinných miest. Stále platí setprecision(2), teda sa vypíše: 3.14e+002