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
DÁTOVÉ PRÚDYDÁTOVÉ PRÚDYKONZOLAKONZOLA
Streams
Č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
....
Č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
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;
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;
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
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 << " "; }
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
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
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
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
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