Osnovni ulaz / izlaz C ++: Primjer Cout, Cin, Cerr

Sadržaj:

Anonim

Š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:

  1. Prvo se tok inicijalizira ispravnim tipom.
  2. Dalje, trebali biste navesti gdje će se I / O dogoditi pomoću pokazivača get / put.
  3. 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:

#include using namespace std;int main() {char welcome[] = "Welcome to Guru99";cout << welcome << endl;return 0;}

Izlaz:

Evo snimke zaslona koda:

Objašnjenje koda:

  1. Uključite iostream datoteku zaglavlja gdje je definiran objekt cout.
  2. Uključite std prostor imena kako ga ne bismo morali zvati kada koristimo njegove klase.
  3. Pozovite glavnu () funkciju. Programski kod treba dodati unutar tijela. Otvarajuća kovrčava zagrada {označava početak njezina tijela.
  4. Stvorite varijablu znaka pod nazivom dobrodošlica koja će sadržavati niz Dobrodošli u Guru99.
  5. 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.
  6. Program mora vratiti vrijednost nakon uspješnog izvršavanja.
  7. 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 ++:

#include using 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:

  1. Uključite iostream datoteku zaglavlja u naš program. Cin objekt je definiran u ovoj datoteci zaglavlja.
  2. Uključite std prostor imena da biste koristili njegove klase. Nećete morati zvati std kada koristite njegove klase.
  3. Pozovite glavnu () funkciju. Programski kod treba dodati unutar tijela.
  4. Početak tijela programa.
  5. Deklarirajte cjelobrojnu varijablu pod nazivom number.
  6. Ispišite poruku na zaslon u kojoj se od korisnika traži da unese broj.
  7. Očitajte vrijednost koju je korisnik unio na konzolu s tipkovnice.
  8. Ispišite gore pročitanu vrijednost na konzoli uz drugi tekst.
  9. Program bi trebao vratiti vrijednost ako se uspješno izvrši.
  10. 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:

#include using namespace std;int main() {cerr << "An Error occurred!";return 0;}

Izlaz:

Evo snimke zaslona koda:

Objašnjenje koda:

  1. Uključite iostream datoteku zaglavlja tamo gdje je definiran objekt cerr.
  2. Uključite std prostor imena kako ga ne bismo morali zvati kada koristimo njegove klase.
  3. Pozovite glavnu () funkciju. Logiku programa treba dodati unutar svog tijela. Otvarajuća kovrčava zagrada označava početak tijela funkcije.
  4. Upotrijebite objekt cerr za ispis pogreške na konzoli.
  5. Program mora vratiti vrijednost nakon uspješnog izvršavanja.
  6. 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:

#include using namespace std;int main() {clog << "An Error occurred!";return 0;}

Izlaz:

Evo snimke zaslona koda:

Objašnjenje koda:

  1. Uključujući iostream datoteku zaglavlja u kojoj je definiran objekt začepljenja.
  2. Uključujući prostor imena std kako bismo mogli koristiti njegove klase bez pozivanja.
  3. Pozivanje glavne () funkcije. Logiku programa treba dodati unutar svog tijela. Znak {označava početak tijela funkcije.
  4. Upotrijebite objekt začepljenja za ispis pogreške na standardnom izlazu, monitoru.
  5. Program mora vratiti vrijednost nakon uspješnog završetka.
  6. 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.