Osnovni vhod / izhod C ++: primer Cout, Cin, Cerr

Kazalo:

Anonim

Kaj so tokovi v C ++?

C ++ uporabnikom ponuja številne knjižnice, ki jih lahko uporabljajo za izvajanje vhodno / izhodnih nalog. Te naloge se izvajajo v obliki bajtnih zaporedij, popularno imenovanih tokov.

Potoki so razdeljeni na dva dela:

Vrste potokov

  • Vhodni tok: To je vrsta toka, pri kateri se bajti pretakajo iz naprave, kot je tipkovnica, v glavni pomnilnik.
  • Izhodni tok: to je vrsta toka, kjer bajti tečejo v nasprotni smeri, to je od glavnega pomnilnika in nato do naprave, kot je zaslon zaslona.

V tej vadnici C ++ boste izvedeli:

  • Kaj so tokovi v C ++?
  • Kako delujejo tokovi?
  • Tabela funkcij
  • Datoteke glave C ++ za vhod / izhod
  • std :: cout
  • std :: cin
  • std :: cerr
  • std :: zamaši
  • Napaka pri obdelavi tokov IO:

Kako delujejo tokovi?

Tokovi C ++ delujejo na naslednji način:

  1. Najprej se tok inicializira s pravo vrsto.
  2. Nato z uporabo kazalcev get / put navedite, kje bo prišlo do V / I.
  3. Ko pridete na pravo mesto v toku, lahko izvajate vhodne in izhodne naloge z uporabo operatorjev >> in <<.

Tabela funkcij

Sledijo funkcije, ki so na voljo v glavi datoteke stream.h:

Razred Funkcije
Filebuf Nastavi medpomnilnike datotek za branje / pisanje. V sebi ima funkcije close () in open ()
fstreambase To je osnovni razred za razrede ifstream, fstream in ofstream. Njene operacije so skupne datotekam.
ifstream To je razred toka vhodne datoteke za zagotavljanje vnosnih operacij.
od toka To je razred izhodne datoteke za zagotavljanje izhodnih operacij.
fstream To je razred vhodno / izhodnega toka. Podpira hkratne vhodno / izhodne operacije.

Datoteke glave C ++ za vhod / izhod

C ++ ponuja tri knjižnice s funkcijami za izvajanje osnovnih nalog vnosa / izhoda. Vključujejo:

  • Iostream: To je kratica za standardni vhodno / izhodni tok. Ta datoteka glave vsebuje opredelitve za predmete, kot je cin / cout / cerr.
  • Iomanip: To je kratica za vhodno / izhodne manipulatorje. Knjižnica ima funkcije, ki se lahko uporabljajo za manipulacijo s tokovi. Vsebuje definicije za predmete, kot so setw, setprecision in drugi.
  • Fstream: To je datoteka z glavo za opis toka datotek. Obdeluje podatke, ki se iz datoteke berejo kot vhodni podatki ali ki so zapisani v datoteko, kot izhod.

Ključne besede cin in cout so v C ++ zelo priljubljene. Uporabljajo se za sprejemanje vhodov oziroma za tiskanje izhodov. Če jih želite uporabiti, morate v svoj program vključiti glavo datoteke iostream. Razlog je v tem, da so opredeljeni v tej datoteki glave. Če ne vključite datoteke glave glavnega strežnika iostream, se bo pojavila napaka. To je posledica neuspešnega razumevanja pomena ključnih besed prevajalnika C ++.

Glavni objekti, definirani v datoteki glave iostream, so cin, cout, cerr in clog. Pogovorimo se o njih.

std :: cout

Objekt cout je primerek razreda iostream. Uporablja se za ustvarjanje izhodnih podatkov na standardni izhodni napravi, ki je običajno zaslon. Uporablja se skupaj z operaterjem za vstavljanje toka (<<).

Primer:

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

Izhod:

Tu je posnetek zaslona kode:

Razlaga kode:

  1. Vključite datoteko glave iostream, kjer je definiran objekt cout.
  2. Vključite imenski prostor std, da ga ne bomo morali klicati pri uporabi njegovih razredov.
  3. Pokličite glavno funkcijo. Programsko kodo je treba dodati v njeno telo. Odprta kodrasta oklepaj {označuje začetek telesa.
  4. Ustvarite spremenljivko znaka z imenom dobrodošli, da vsebuje niz Dobrodošli v Guru99.
  5. Na konzolo natisnite vrednost dobrodošlice niza. Endl je ključna beseda C ++, ki pomeni končno vrstico. Premakne kurzor, da začne tiskati besedilo v naslednji vrstici.
  6. Program mora vrniti vrednost ob uspešni izvedbi.
  7. Konec telesa funkcije main ().

std :: cin

Objekt cin je primerek razreda istream. Prebere vnos iz vhodne naprave, tipkovnice. Običajno se uporablja skupaj z operaterjem ekstrakcije (>>). Izvlečni objekt je odgovoren za pridobivanje podatkov, vnesenih prek tipkovnice, iz predmeta cin.

Primer:

Naslednji primer prikazuje, kako uporabljati ključno besedo cin v jeziku C ++:

#include using namespace std;int main(){int number;cout << "Enter a number:";cin >> number;cout << "\nYou entered: " << number;return 0;}

Izhod:

Tu je posnetek zaslona kode:

Razlaga kode:

  1. V naš program vključite glavo datoteke iostream. Objekt cin je definiran v tej datoteki glave.
  2. Vključite imenski prostor std za uporabo njegovih razredov. Pri uporabi njegovih razredov vam ne bo treba klicati std.
  3. Pokličite glavno funkcijo. Programsko kodo je treba dodati v njeno telo.
  4. Začetek dela programa.
  5. Navedite celoštevilčno spremenljivko z imenom number.
  6. Na zaslon natisnite sporočilo, v katerem morate uporabnika vnesti številko.
  7. Preberite vrednost, ki jo je uporabnik vnesel na konzolo s tipkovnice.
  8. Natisnite zgoraj prebrano vrednost na konzolo skupaj z drugim besedilom.
  9. Program mora vrniti vrednost, če se uspešno izvede.
  10. Konec telesa glavne funkcije.

std :: cerr

Objekt cerr tvori standardni tok napak za izpis napak v jeziku C ++. Cerr je primerek razreda ostream. Objekt cerr ni medpomnjen. To pomeni, da se uporablja, kadar se takoj prikaže sporočilo o napaki.

Ker ni varovan, ne shrani sporočila o napaki za kasnejši prikaz. Uporablja se skupaj z operaterjem za vstavljanje toka (<<).

Primer:

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

Izhod:

Tu je posnetek zaslona kode:

Razlaga kode:

  1. Vključite datoteko glave iostream, kjer je bil definiran objekt cerr.
  2. Vključite imenski prostor std, da ga ne bomo morali klicati pri uporabi njegovih razredov.
  3. Pokličite glavno funkcijo. Programsko logiko je treba dodati v njeno telo. Odpirajoča se skodrana oklepaj označuje začetek telesa funkcije.
  4. Z objektom cerr natisnite napako na konzoli.
  5. Program mora vrniti vrednost ob uspešni izvedbi.
  6. Konec telesa glavne funkcije.

std :: zamaši

Objekt zamašitve je primerek razreda ostream. Uporablja se za prikaz napak na običajnem zaslonu, monitorju. Podoben je predmetu cerr, vendar je medpomnjen. Ker je medpomnjeno, sporočilo o napaki shrani v medpomnilnik, dokler se vmesnik ne napolni / izpere. Uporablja se skupaj z operaterjem za vstavljanje toka (<<).

Primer:

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

Izhod:

Tu je posnetek zaslona kode:

Razlaga kode:

  1. Vključno z glavo datoteke iostream, v kateri je definiran objekt zamašitve.
  2. Vključno z imenskim prostorom std, da lahko uporabimo njegove razrede, ne da bi ga poklicali.
  3. Klic glavne () funkcije. Programsko logiko je treba dodati v njeno telo. Znak {označuje začetek telesa funkcije.
  4. Z objektom zamašitve natisnite napako na standardni izhod, monitor.
  5. Program mora po uspešnem zaključku vrniti vrednost.
  6. Konec telesa funkcije main ().

Napaka pri obdelavi tokov IO:

Če želite preveriti, ali je tok veljaven ali ne, ga lahko uporabite kot logično vrednost.

Tu je primer:

ifstream file( "myfile.txt" );if ( ! file ){cout << "File NOT opened!" << endl;}

Če želite več podrobnosti o stanju pretoka, lahko uporabite te funkcije:

  • good () - vrne se true, če je vse v redu.
  • bad () - vrne true, če pride do usodne napake.
  • fail () - po neuspešni operaciji toka bo vrnil vrednost true.
  • eof () - vrne true, če doseže konec datoteke.

Če želite vedeti, ali določena operacija branja / pisanja ni uspela, preizkusite rezultat branja.

Če želite na primer preveriti, ali je uporabnik vnesel veljavno celo število, naredite to:

int p;if ( cin >> p ){cout << "Enter valid number" << endl;}

Povzetek

  • Vhodne in izhodne naloge v C ++ se izvajajo po zaporedju bajtov. Bajti se imenujejo tokovi.
  • V vhodnem toku se bajti pretakajo od vhodne naprave kot tipkovnica do glavnega pomnilnika.
  • V izhodnem toku bajti iz glavnega pomnilnika nato v izhodno napravo, kot je monitor.
  • Objekt cin je primerek razreda istream. Bere vhodne podatke iz vhodne naprave, kot je tipkovnica.
  • Objekt cout je primerek razreda ostream. Proizvaja na izhodnih napravah, kot je monitor.
  • Objekt cerr je primerek razreda ostream. Na monitorju prikaže predmete z napako.
  • Objekt zamašitve je primerek razreda ostream. Prikaže sporočila o napakah na izhodnih napravah.
  • Objekt zamašitve medpomni sporočila o napakah, medtem ko objekt cerr ne.