C ++ põhisisend / väljund: Cout, Cin, Cerr näide

Lang L: none (table-of-contents):

Anonim

Mis on voogud C ++ -s?

C ++ pakub kasutajatele mitmeid teeke, mida nad saavad kasutada sisend- / väljundülesannete täitmiseks. Neid ülesandeid tehakse baidijärjestuste kujul, mida rahvasuus nimetatakse voogudeks.

Vood jagunevad kaheks:

Voogude tüübid

  • Sisendvoog: see on voo tüüp, kus baidid voolavad seadmest, näiteks klaviatuurilt, põhimällu.
  • Väljundvoog: see on voo tüüp, kus baidid voolavad vastupidises suunas, see tähendab põhimälust ja seejärel seadmesse, näiteks kuvarile.

Selles C ++ õpetuses saate teada:

  • Mis on voogud C ++ -s?
  • Kuidas vooged toimivad?
  • Funktsioonitabel
  • C ++ päisefailid sisendi / väljundi jaoks
  • std :: cout
  • std :: cin
  • std :: cerr
  • std :: ummistama
  • Viga IO voogude käitlemisel:

Kuidas vooged toimivad?

C ++ voogud toimivad järgmiselt:

  1. Kõigepealt lähtestatakse õige tüübiga voog.
  2. Järgmisena peaksite get / put-osutite abil märkima, kus sisend / väljund toimub.
  3. Pärast voos õigesse kohta jõudmist saate sisestus- ja väljundülesandeid täita vastavalt operaatorite >> ja << abil.

Funktsioonitabel

Stream.h päisefailis pakutavad funktsioonid on järgmised:

Klass Funktsioonid
Filebuf See määrab failipuhvrid lugemiseks / kirjutamiseks. Selles on sulgemis- () ja avatud () funktsioonid
fstreambase See on klasside baasklass ifstream, fstream jastream. Selle toimingud on failivoogude jaoks ühised.
ifstream See on sisendfailide voo klass sisendtoimingute pakkumiseks.
ülesvoolu See on väljundfailide voo klass väljundoperatsioonide pakkumiseks.
voolu See on sisend- / väljundvoo klass. See toetab samaaegseid sisend- ja väljundoperatsioone.

C ++ päisefailid sisendi / väljundi jaoks

C ++ pakub kolme teeki, millel on funktsioonid sisend- ja väljundülesannete täitmiseks. Nad sisaldavad:

  • Iostream: see on standardse sisendi / väljundi voo lühend. Selle päisefailiga on kaasas objektide nagu cin / cout / cerr definitsioonid.
  • Iomanip: see on sisendi / väljundi manipulaatorite lühend. Teegil on funktsioonid, mida saab kasutada voogude manipuleerimiseks. See sisaldab selliste objektide definitsioone nagu setw, setprecision ja teised.
  • Fstream: See on päisefail failivoo kirjeldamiseks. See käsitleb andmeid, mis loetakse failist sisendina või mis on kirjutatud faili, väljundisse.

Cin ja cout märksõnad on C ++ keeles väga populaarsed. Neid kasutatakse vastavalt sisendite ja väljundite printimiseks. Nende kasutamiseks peate oma programmi lisama iostreami päisefaili. Põhjus on see, et need on selles päisefailis määratletud. Iostreami päisefaili lisamata jätmine tekitab tõrke. Selle põhjuseks on C ++ kompilaatori suutmatus mõista märksõnade tähendust.

Iostreami päisefailis määratletud peamised objektid on cin, cout, cerr ja clog. Arutame neid.

std :: cout

Cout-objekt on klassi iostream eksemplar. Seda kasutatakse väljundi tootmiseks tavalisel väljundseadmel, mis on tavaliselt ekraan. Seda kasutatakse koos voo sisestamise operaatoriga (<<).

Näide:

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

Väljund:

Siin on ekraanipilt koodist:

Koodi selgitus:

  1. Lisage iostreami päisefail, kus cout-objekt on määratletud.
  2. Kaasa standardne nimeruum, et me ei peaks seda oma klasside kasutamisel kutsuma.
  3. Helistage funktsioonile main (). Programmi kood tuleks lisada selle kehasse. Avanev lokkis traks {tähistab selle keha algust.
  4. Loo tähemuutuja nimega welcome, et hoida stringi Welcome to Guru99.
  5. Trükkige konsoolile string welcome väärtus. Lõpp on C ++ märksõna, mis tähendab lõppjoont. See liigutab kursori, et alustada teksti printimist järgmisele reale.
  6. Eduka käivitamise korral peab programm tagastama väärtuse.
  7. Funktsiooni põhiosa lõpp ().

std :: cin

Cin-objekt on istream-klassi eksemplar. See loeb sisendit sisendseadmest, klaviatuurilt. Tavaliselt kasutatakse seda koos kaevandamise operaatoriga (>>). Ekstraheerimisobjekt vastutab klaviatuuri kaudu sisestatud andmete eraldamise eest cin-objektist.

Näide:

Järgmine näide näitab, kuidas kasutada CIN-märksõna C ++ -s:

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

Väljund:

Siin on ekraanipilt koodist:

Koodi selgitus:

  1. Kaasake iostreami päisefail meie programmi. Selles päisefailis on määratletud objekt cin.
  2. Klasside kasutamiseks lisage standardne nimeruum. Selle klasside kasutamisel ei pea te standardile helistama.
  3. Helistage funktsioonile main (). Programmi kood tuleks lisada selle kehasse.
  4. Programmi sisu algus.
  5. Deklareerige täisarvu muutuja nimega number.
  6. Printige ekraanile teade, milles palutakse kasutajal number sisestada.
  7. Lugege klaviatuurilt kasutaja poolt konsoolile sisestatud väärtust.
  8. Printige ülaltoodud väärtus konsoolile muu teksti kõrvale.
  9. Eduka käivitamise korral peaks programm tagastama väärtuse.
  10. Põhifunktsiooni keha lõpp.

std :: cerr

Cerr-objekt moodustab standardvea voo vigade väljastamiseks C ++ -s. Cerr on ostreami klassi eksemplar. Cerri objekt on puhverdamata. See tähendab, et seda kasutatakse juhul, kui tõrketeade tuleb kohe kuvada.

Kuna see on puhverdamata, ei salvesta see veateadet hilisemaks kuvamiseks. Seda kasutatakse koos voo sisestamise operaatoriga (<<).

Näide:

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

Väljund:

Siin on ekraanipilt koodist:

Koodi selgitus:

  1. Kaasa iostreami päisefail, kus cerr-objekt on määratletud.
  2. Kaasa standardne nimeruum, et me ei peaks seda oma klasside kasutamisel kutsuma.
  3. Helistage funktsioonile main (). Programmi loogika tuleks lisada selle kehasse. Avanev lokkis klamber tähistab funktsiooni keha algust.
  4. Konsoolile vea printimiseks kasutage objekti cerr.
  5. Programm peab edukal täitmisel tagastama väärtuse.
  6. Põhifunktsiooni keha lõpp.

std :: ummistama

Ummistusobjekt on klassi ostream eksemplar. Seda kasutatakse vigade kuvamiseks standardekraanil, monitoril. See sarnaneb cerriobjektiga, kuid on puhverdatud. Kuna see on puhverdatud, salvestab see veateate puhvrisse, kuni puhver on täidetud / loputatud. Seda kasutatakse koos voo sisestamise operaatoriga (<<).

Näide:

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

Väljund:

Siin on ekraanipilt koodist:

Koodi selgitus:

  1. Sealhulgas iostreami päisefail, milles ummistuse objekt on määratletud.
  2. Kaasa arvatud standardne nimeruum, et saaksime selle klasse kasutada ilma seda nimetamata.
  3. Funktsiooni main () kutsumine. Programmi loogika tuleks lisada selle kehasse. {Tähistab funktsiooni keha algust.
  4. Kasutage ummistuseobjekti, et printida viga standardväljundisse, monitorile.
  5. Programm peab edukal lõpetamisel tagastama väärtuse.
  6. Funktsioonikeha lõpp main ().

Viga IO voogude käitlemisel:

Voo kehtivuse kontrollimiseks saate seda kasutada tõeväärtusena.

Siin on näide:

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

Voo oleku kohta lisateabe saamiseks võite kasutada neid funktsioone:

  • hea () - vastab tõele, kui kõik on korras.
  • halb () - tagastab tõene, kui tekib fataalne viga.
  • fail () - tagastab tõese pärast ebaõnnestunud voooperatsiooni.
  • eof () - tagastatakse tõene, kui see jõuab faili lõppu.

Kui soovite teada, kas konkreetne lugemis- / kirjutamistoiming ebaõnnestus, proovige lugemise tulemust.

Näiteks selleks, et kontrollida, kas kasutaja sisestas kehtiva täisarvu, tehke järgmist.

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

Kokkuvõte

  • C ++ sisend- ja väljundülesanded tehakse baitide järjestuse kaudu. Baidisid nimetatakse voogudeks.
  • Sisendvoos voolavad baidid sisendseadmest nagu klaviatuur põhimällu.
  • Väljundvoos baidid põhimälust seejärel väljundseadmesse nagu monitor.
  • Cin-objekt on istream-klassi eksemplar. See loeb sisendit sisendseadmest nagu klaviatuur.
  • Cout-objekt on klassi ostream eksemplar. See toodab väljundit väljundseadmetes nagu monitor.
  • Cerr-objekt on klassi ostream eksemplar. See kuvab monitoril veaobjektid.
  • Ummistusobjekt on klassi ostream eksemplar. See kuvab veateateid väljundseadmetes.
  • Ummistusobjekt puhverdab veateateid, samas kui objekt cerr mitte.