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:
- Najprej se tok inicializira s pravo vrsto.
- Nato z uporabo kazalcev get / put navedite, kje bo prišlo do V / I.
- 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:
#includeusing namespace std;int main() {char welcome[] = "Welcome to Guru99";cout << welcome << endl;return 0;}
Izhod:
Tu je posnetek zaslona kode:
Razlaga kode:
- Vključite datoteko glave iostream, kjer je definiran objekt cout.
- Vključite imenski prostor std, da ga ne bomo morali klicati pri uporabi njegovih razredov.
- Pokličite glavno funkcijo. Programsko kodo je treba dodati v njeno telo. Odprta kodrasta oklepaj {označuje začetek telesa.
- Ustvarite spremenljivko znaka z imenom dobrodošli, da vsebuje niz Dobrodošli v Guru99.
- 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.
- Program mora vrniti vrednost ob uspešni izvedbi.
- 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 ++:
#includeusing 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:
- V naš program vključite glavo datoteke iostream. Objekt cin je definiran v tej datoteki glave.
- Vključite imenski prostor std za uporabo njegovih razredov. Pri uporabi njegovih razredov vam ne bo treba klicati std.
- Pokličite glavno funkcijo. Programsko kodo je treba dodati v njeno telo.
- Začetek dela programa.
- Navedite celoštevilčno spremenljivko z imenom number.
- Na zaslon natisnite sporočilo, v katerem morate uporabnika vnesti številko.
- Preberite vrednost, ki jo je uporabnik vnesel na konzolo s tipkovnice.
- Natisnite zgoraj prebrano vrednost na konzolo skupaj z drugim besedilom.
- Program mora vrniti vrednost, če se uspešno izvede.
- 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:
#includeusing namespace std;int main() {cerr << "An Error occurred!";return 0;}
Izhod:
Tu je posnetek zaslona kode:
Razlaga kode:
- Vključite datoteko glave iostream, kjer je bil definiran objekt cerr.
- Vključite imenski prostor std, da ga ne bomo morali klicati pri uporabi njegovih razredov.
- Pokličite glavno funkcijo. Programsko logiko je treba dodati v njeno telo. Odpirajoča se skodrana oklepaj označuje začetek telesa funkcije.
- Z objektom cerr natisnite napako na konzoli.
- Program mora vrniti vrednost ob uspešni izvedbi.
- 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:
#includeusing namespace std;int main() {clog << "An Error occurred!";return 0;}
Izhod:
Tu je posnetek zaslona kode:
Razlaga kode:
- Vključno z glavo datoteke iostream, v kateri je definiran objekt zamašitve.
- Vključno z imenskim prostorom std, da lahko uporabimo njegove razrede, ne da bi ga poklicali.
- Klic glavne () funkcije. Programsko logiko je treba dodati v njeno telo. Znak {označuje začetek telesa funkcije.
- Z objektom zamašitve natisnite napako na standardni izhod, monitor.
- Program mora po uspešnem zaključku vrniti vrednost.
- 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.