Što su tokovi u C ++-u?
C ++ pruža korisnicima brojne biblioteke koje mogu koristiti za izvršavanje zadataka unosa / izlaza. Ti se zadaci obavljaju u obliku sekvenci bajtova, popularno nazvanih streamovi.
Potoci su podijeljeni na dva dijela:
Vrste potoka
- Ulazni tok: Ovo je vrsta toka u kojem bajtovi teku s uređaja kao što je tipkovnica u glavnu memoriju.
- Izlazni tok: Ovo je vrsta toka u kojem bajtovi teku u suprotnom smjeru, to jest, iz glavne memorije, a zatim u uređaj, kao što je zaslon zaslona.
U ovom C ++ tutorialu naučit ćete:
- Što su tokovi u C ++-u?
- Kako tokovi rade?
- Tablica funkcija
- C ++ datoteke zaglavlja za ulaz / izlaz
- std :: cout
- std :: cin
- std :: cerr
- std :: začepiti
- Pogreška pri rukovanju IO streamovima:
Kako tokovi rade?
C ++ potoci rade na sljedeći način:
- Prvo se tok inicijalizira ispravnim tipom.
- Dalje, trebali biste navesti gdje će se I / O dogoditi pomoću pokazivača get / put.
- Nakon što dođete na pravo mjesto u toku, možete izvršavati zadatke unosa i izlaza pomoću operatora >> odnosno <<.
Tablica funkcija
Slijede funkcije osigurane u zaglavnoj datoteci stream.h:
Razred | Funkcije |
Filebuf | Postavlja međuspremnike datoteka za čitanje / pisanje. U sebi ima funkcije close () i open () |
fstreambase | To je osnovna klasa za klase ifstream, fstream i ofstream. Njegove su operacije zajedničke za tokove datoteka. |
ako tok | To je klasa toka ulazne datoteke za pružanje ulaznih operacija. |
od struje | To je klasa toka izlazne datoteke za pružanje izlaznih operacija. |
fstream | To je klasa ulazno / izlaznog toka. Podržava istodobne ulazno / izlazne operacije. |
C ++ datoteke zaglavlja za ulaz / izlaz
C ++ nudi tri knjižnice koje dolaze s funkcijama za obavljanje osnovnih zadataka unosa / izlaza. Oni uključuju:
- Iostream: Skraćenica je za standardni ulazno / izlazni tok. Ova datoteka zaglavlja dolazi s definicijama za objekte poput cin / cout / cerr.
- Iomanip: To je kratica za ulazno / izlazne manipulatore. Biblioteka dolazi s funkcijama koje se mogu koristiti za manipulaciju tokovima. Sadrži definicije za objekte kao što su setw, setprecision i drugi.
- Fstream: Ovo je zaglavna datoteka koja opisuje tok datoteke. Obrađuje podatke koji se čitaju iz datoteke kao ulaz ili koji se zapisuju u datoteku, kao izlaz.
Ključne riječi cin i cout vrlo su popularne u jeziku C ++. Koriste se za uzimanje ulaza, odnosno za ispis izlaza. Da biste ih koristili, u svoj program morate uključiti zaglavnu datoteku iostream. Razlog je taj što su definirani u toj zaglavnoj datoteci. Ne uključivanje datoteke zaglavlja iostream generirat će pogrešku. To je rezultat neuspjeha prevoditelja C ++ da shvati značenje ključnih riječi.
Glavni objekti definirani u datoteci zaglavlja iostream su cin, cout, cerr i clog. Razgovarajmo o njima.
std :: cout
Cout objekt je instanca klase iostream. Koristi se za stvaranje rezultata na standardnom izlaznom uređaju, koji je obično zaslon. Koristi se zajedno s operatorom za umetanje toka (<<).
Primjer:
#includeusing namespace std;int main() {char welcome[] = "Welcome to Guru99";cout << welcome << endl;return 0;}
Izlaz:
Evo snimke zaslona koda:
Objašnjenje koda:
- Uključite iostream datoteku zaglavlja gdje je definiran objekt cout.
- Uključite std prostor imena kako ga ne bismo morali zvati kada koristimo njegove klase.
- Pozovite glavnu () funkciju. Programski kod treba dodati unutar tijela. Otvarajuća kovrčava zagrada {označava početak njezina tijela.
- Stvorite varijablu znaka pod nazivom dobrodošlica koja će sadržavati niz Dobrodošli u Guru99.
- Ispišite vrijednost dobrodošlice niza na konzoli. Endl je ključna riječ C ++ koja znači krajnji redak. Pomiče kursor za početak ispisa teksta u sljedećem retku.
- Program mora vratiti vrijednost nakon uspješnog izvršavanja.
- Kraj tijela funkcije main ().
std :: cin
Cin objekt je instanca klase istream. Čita unos s ulaznog uređaja, tipkovnice. Obično se koristi zajedno s operatorom ekstrakcije (>>). Izdvajanje objekt odgovoran je za izdvajanje podataka unesenih putem tipkovnice iz cin objekta.
Primjer:
Sljedeći primjer pokazuje kako koristiti ključnu riječ cin u C ++:
#includeusing namespace std;int main(){int number;cout << "Enter a number:";cin >> number;cout << "\nYou entered: " << number;return 0;}
Izlaz:
Evo snimke zaslona koda:
Objašnjenje koda:
- Uključite iostream datoteku zaglavlja u naš program. Cin objekt je definiran u ovoj datoteci zaglavlja.
- Uključite std prostor imena da biste koristili njegove klase. Nećete morati zvati std kada koristite njegove klase.
- Pozovite glavnu () funkciju. Programski kod treba dodati unutar tijela.
- Početak tijela programa.
- Deklarirajte cjelobrojnu varijablu pod nazivom number.
- Ispišite poruku na zaslon u kojoj se od korisnika traži da unese broj.
- Očitajte vrijednost koju je korisnik unio na konzolu s tipkovnice.
- Ispišite gore pročitanu vrijednost na konzoli uz drugi tekst.
- Program bi trebao vratiti vrijednost ako se uspješno izvrši.
- Kraj tijela glavne funkcije.
std :: cerr
Cerr objekt tvori standardni tok pogrešaka za izbacivanje pogrešaka u C ++. Cerr je instanca ostream klase. Cerr objekt je nebuferiran. To znači da se koristi kada se odmah prikaže poruka o pogrešci.
Budući da je nebuferiran, ne pohranjuje poruku pogreške za kasniji prikaz. Koristi se zajedno s operatorom za umetanje toka (<<).
Primjer:
#includeusing namespace std;int main() {cerr << "An Error occurred!";return 0;}
Izlaz:
Evo snimke zaslona koda:
Objašnjenje koda:
- Uključite iostream datoteku zaglavlja tamo gdje je definiran objekt cerr.
- Uključite std prostor imena kako ga ne bismo morali zvati kada koristimo njegove klase.
- Pozovite glavnu () funkciju. Logiku programa treba dodati unutar svog tijela. Otvarajuća kovrčava zagrada označava početak tijela funkcije.
- Upotrijebite objekt cerr za ispis pogreške na konzoli.
- Program mora vratiti vrijednost nakon uspješnog izvršavanja.
- Kraj tijela glavne funkcije.
std :: začepiti
Objekt clog instanca je klase ostream. Koristi se za prikazivanje pogrešaka na standardnom zaslonu, monitoru. Sličan je cerr objektu, ali je baferiran. Budući da je međuspremnik, sprema poruku o pogrešci u međuspremnik sve dok se međuspremnik ne napuni / ispere. Koristi se zajedno s operatorom za umetanje toka (<<).
Primjer:
#includeusing namespace std;int main() {clog << "An Error occurred!";return 0;}
Izlaz:
Evo snimke zaslona koda:
Objašnjenje koda:
- Uključujući iostream datoteku zaglavlja u kojoj je definiran objekt začepljenja.
- Uključujući prostor imena std kako bismo mogli koristiti njegove klase bez pozivanja.
- Pozivanje glavne () funkcije. Logiku programa treba dodati unutar svog tijela. Znak {označava početak tijela funkcije.
- Upotrijebite objekt začepljenja za ispis pogreške na standardnom izlazu, monitoru.
- Program mora vratiti vrijednost nakon uspješnog završetka.
- Kraj tijela funkcije main ().
Pogreška pri rukovanju IO streamovima:
Da biste provjerili je li tok valjan ili ne, možete ga koristiti kao logičku vrijednost.
Evo primjera:
ifstream file( "myfile.txt" );if ( ! file ){cout << "File NOT opened!" << endl;}
Da biste dobili više detalja o statusu streama, možete koristiti ove funkcije:
- good () - vratit će se istinito ako je sve u redu.
- bad () - vratit će true ako se dogodi fatalna pogreška.
- fail () - vratit će true nakon neuspješnog rada u toku.
- eof () - vratit će true ako dođe do kraja datoteke.
Da biste znali je li određena operacija čitanja / pisanja zakazala, testirajte rezultat čitanja.
Na primjer, da biste provjerili je li korisnik unio valjani cijeli broj, učinite ovo:
int p;if ( cin >> p ){cout << "Enter valid number" << endl;}
Sažetak
- Ulazni i izlazni zadaci u C ++-u obavljaju se nizom bajtova. Bajtovi se zovu tokovi.
- U ulaznom toku bajtovi teku od ulaznog uređaja poput tipkovnice do glavne memorije.
- U izlaznom toku bajtovi iz glavne memorije zatim na izlazni uređaj poput monitora.
- Cin objekt je instanca klase istream. Čita unos s ulaznog uređaja poput tipkovnice.
- Cout objekt je instanca klase ostream. Daje izlaz na izlaznim uređajima poput monitora.
- Cerr objekt je instanca ostream klase. Prikazuje objekte pogrešaka na monitoru.
- Objekt clog instanca je klase ostream. Prikazuje poruke o pogreškama na izlaznim uređajima.
- Clog objekt sprema poruke o pogrešci, dok cerr objekt ne.