C++ Põhiline sisend/väljund: Cout, Cin, Cerr Näide
Mida sisaldavad vood C++?
C++ pakub kasutajatele mitmeid teeke, mida nad saavad kasutada sisend-/väljundülesannete täitmiseks. Neid ülesandeid tehakse baidijadadena, mida rahvapäraselt nimetatakse voogudeks.
Vood jagunevad kaheks:
Voogude tüübid
- Sisendvoog: See on teatud tüüpi voog, kus baidid voolavad seadmest, näiteks klaviatuurilt, põhimällu.
- Väljundvoog: See on vootüüp, kus baidid voolavad vastupidises suunas, st põhimälust ja seejärel seadmesse, näiteks kuvarisse.
Kuidas vood töötavad?
C++ vood töötavad järgmiselt:
- Esiteks lähtestatakse voog õiget tüüpi.
- Järgmisena peaksite märkima, kus I / O toimub get/put osutite abil.
- Pärast voos õigesse asukohta jõudmist saate sooritada sisend- ja väljundtoiminguid, kasutades vastavalt >> ja << operaatoreid.
Funktsioonitabel
Päisefailis stream.h pakutavad funktsioonid on järgmised:
klass | Funktsioonid |
---|---|
Filebuf | See määrab failipuhvrid lugemiseks/kirjutamiseks. Selles on funktsioonid close () ja open (). |
fstreambase | See on klasside ifstream, fstream ja ofstream baasklass. Selle toimingud on failivoogudele ühised. |
ifstream | See on sisendfaili vooklass sisendtoimingute pakkumiseks. |
väljaspool voolu | See on väljundfaili vooklass 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, mis on varustatud funktsioonidega põhiliste sisend-/väljundülesannete täitmiseks. Nende hulka kuuluvad:
- Iostream: See on standardse sisend-/väljundvoo akronüüm. See päisefail sisaldab selliste objektide määratlusi nagu cin/cout/cerr.
- Iomanip: See on akronüüm sisendi/väljundi manipulaatoritest. Teegiga on kaasas funktsioonid, mida saab kasutada voogudega manipuleerimiseks. See sisaldab selliste objektide määratlusi nagu setw, setprecision ja teised.
- Fstream: See on päisefail failivoo kirjeldamiseks. See käsitleb andmeid, mis loetakse failist sisendiks või mis kirjutatakse faili ehk väljundisse.
Märksõnad cin ja cout on riigis väga populaarsed C++. Neid kasutatakse vastavalt sisendite ja printimisväljundite võtmiseks. Nende kasutamiseks peate oma programmi lisama iostream päisefaili. Põhjus on selles, et need on määratletud selles päisefailis. Kui iostreami päisefaili ei lisata, tekib tõrge. See tuleneb ebaõnnestumisest C++ koostaja, et mõista märksõnade tähendust.
Peamised iostreami päisefailis määratletud objektid on cin, cout, cerr ja clog. Arutame neid.
std::cout
Cout-objekt on iostream klassi eksemplar. Seda kasutatakse väljundi tootmiseks tavalisel väljundseadmel, milleks on tavaliselt ekraan. Seda kasutatakse koos voo sisestamise operaatoriga (<<).
Näide
#include <iostream> using namespace std; int main() { char welcome[] = "Welcome to Guru99"; cout << welcome << endl; return 0; }
Väljund:
Siin on koodi ekraanipilt:
Koodi selgitus:
- Kaasake iostreami päisefail, kus cout-objekt on määratletud.
- Kaasake std-nimeruum, et me ei peaks seda klasside kasutamisel kutsuma.
- Kutsuge funktsioon main(). Programmi kood tuleks lisada selle kehasse. Avanev lokkis sulg { märgib selle keha algust.
- Looge tähemärgimuutuja nimega teretulnud, et hoida stringi Tere tulemast Guru99-sse.
- Printige konsoolile tervitusstringi väärtus. Endl on a C++ märksõna tähenduses lõpprida. See liigutab kursorit, et alustada teksti printimist järgmisele reale.
- Programm peab eduka täitmise korral tagastama väärtuse.
- Funktsiooni main() keha lõpp.
std::cin
Objekt cin on istream klassi eksemplar. See loeb sisendit sisendseadmelt, klaviatuurilt. Tavaliselt kasutatakse seda koos ekstraheerimisoperaatoriga (>>). Ekstraheerimisobjekt vastutab klaviatuuri kaudu sisestatud andmete eraldamise eest cin-objektist.
Näide
Järgmine näide näitab, kuidas kasutada märksõna cin C++:
#include <iostream> using namespace std; int main() { int number; cout << "Enter a number:"; cin >> number; cout << "\nYou entered: " << number; return 0; }
Väljund:
Siin on koodi ekraanipilt:
Koodi selgitus:
- Kaasake iostreami päisefail meie programmi. Cin-objekt on määratletud selles päisefailis.
- Selle klasside kasutamiseks lisage nimeruum std. Selle klasside kasutamisel ei pea te std-d helistama.
- Kutsuge funktsioon main(). Programmi kood tuleks lisada selle kehasse.
- Programmi põhiosa algus.
- Deklareerige täisarv muutuja nimeline number.
- Printige ekraanile sõnum, milles palutakse kasutajal number sisestada.
- Lugege klaviatuurilt kasutaja konsooli sisestatud väärtust.
- Printige ülaltoodud väärtus konsoolil koos muu tekstiga.
- Programm peaks eduka käivitamise korral tagastama väärtuse.
- Põhifunktsiooni keha lõpp.
std::cerr
Cerr objekt moodustab standardse veavoo vigade väljastamiseks C++. Cerr on ostream klassi eksemplar. Cerr objekt on puhverdamata. See tähendab, et seda kasutatakse siis, kui kohe kuvatakse veateade.
Kuna see on puhverdamata, ei salvesta see veateadet hilisemaks kuvamiseks. Seda kasutatakse koos voo sisestamise operaatoriga (<<).
Näide
#include <iostream> using namespace std; int main() { cerr << "An Error occurred!"; return 0; }
Väljund:
Siin on koodi ekraanipilt:
Koodi selgitus:
- Kaasake iostreami päisefail, kus cerr-objekt on määratletud.
- Kaasake std-nimeruum, et me ei peaks seda klasside kasutamisel kutsuma.
- Kutsuge funktsioon main(). Programmi loogika tuleks lisada selle kehasse. Avanev lokkis traks tähistab funktsiooni keha algust.
- Kasutage konsooli vea printimiseks objekti cerr.
- Programm peab eduka täitmise korral tagastama väärtuse.
- Põhifunktsiooni keha lõpp.
std::ummistus
Clog-objekt on ostream-klassi eksemplar. Seda kasutatakse vigade kuvamiseks standardekraanil, monitoril. See sarnaneb cerr-objektiga, kuid on puhverdatud. Kuna see on puhverdatud, salvestab see veateate puhvris, kuni puhver on täidetud/loputatud. Seda kasutatakse koos voo sisestamise operaatoriga (<<).
Näide
#include <iostream> using namespace std; int main() { clog << "An Error occurred!"; return 0; }
Väljund:
Siin on koodi ekraanipilt:
Koodi selgitus:
- Sealhulgas iostreami päisefail, milles on määratletud ummistuse objekt.
- Kaasa arvatud std-nimeruum, et saaksime kasutada selle klasse ilma seda kutsumata.
- Funktsiooni main() kutsumine. Programmi loogika tuleks lisada selle kehasse. { tähistab funktsiooni keha algust.
- Kasutage ummistusobjekti vea printimiseks standardväljundile, monitorile.
- Programm peab pärast edukat lõpetamist tagastama väärtuse.
- Funktsiooni main() keha lõpp.
Vigade käsitlemine IO-voogudega
Et kontrollida, kas voog on kehtiv või mitte, saate seda kasutada Booleanina.
Siin on näide:
ifstream file( "myfile.txt" ); if ( ! file ) { cout << "File NOT opened!" << endl; }
Voo oleku kohta lisateabe saamiseks võite kasutada järgmisi funktsioone.
- hea()- tagastab tõeseks, kui kõik on korras.
- bad()- tagastab fataalse vea korral tõene.
- fail()- tagastab pärast ebaõnnestunud vootoimingut tõene.
- eof()- tagastab väärtuse tõene, kui see jõuab faili lõppu.
Et teada saada, kas konkreetne lugemise/kirjutamise toiming ebaõnnestus, testige lugemistulemust.
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
- Sisend- ja väljundülesanded In C++ tehakse baidijada kaudu. Baite nimetatakse voogudeks.
- Sisendvoos liiguvad baidid sisendseadmest nagu klaviatuur põhimällu.
- Väljundvoos suunatakse baidid põhimälust seejärel väljundseadmesse nagu monitor.
- Objekt cin on istream klassi eksemplar. See loeb sisendit sisendseadmelt, näiteks klaviatuurilt.
- Cout-objekt on ostream-klassi eksemplar. See toodab väljundit väljundseadmetele, nagu monitor.
- Cerr objekt on ostream klassi eksemplar. See kuvab monitoril veaobjekte.
- Ummisobjekt on ostream klassi eksemplar. See kuvab väljundseadmetel veateateid.
- Ummisobjekt puhverdab veateateid, samas kui objekt cerr mitte.