Mitä virrat ovat C ++: ssa?
C ++ tarjoaa käyttäjille useita kirjastoja, joita he voivat käyttää syöttö- ja tulostustehtävien suorittamiseen. Nämä tehtävät suoritetaan tavusekvenssien muodossa, joita kutsutaan yleisesti virtauksiksi.
Virrat on jaettu kahteen:
Virtatyypit
- Input Stream: Tämä on virtatyyppi, jossa tavut virtaavat laitteesta, kuten näppäimistöltä, päämuistiin.
- Lähtövirta: Tämä on virtatyyppi, jossa tavut virtaavat vastakkaiseen suuntaan, toisin sanoen päämuistista sitten laitteeseen, kuten näyttöruutuun.
Tässä C ++ -opetusohjelmassa opit:
- Mitä virrat ovat C ++: ssa?
- Kuinka virrat toimivat?
- Toimintotaulukko
- C ++ -otsikkotiedostot tuloa / lähtöä varten
- vakio :: cout
- vakio :: cin
- vakio :: cerr
- std :: tukkia
- Virhe IO-virtojen käsittelyssä:
Kuinka virrat toimivat?
C ++ -virrat toimivat seuraavasti:
- Ensinnäkin virta alustetaan oikealla tyypillä.
- Seuraavaksi sinun tulisi ilmoittaa missä I / O tapahtuu käyttämällä get / put-osoittimia.
- Saatuasi oikeaan paikkaan virrassa voit suorittaa syöttö- ja tulostustehtäviä vastaavasti >> ja << operaattoreilla.
Toimintotaulukko
Seuraavat ovat stream.h-otsikkotiedoston toiminnot:
Luokka | Toiminnot |
Filebuf | Se asettaa tiedostopuskurit lukemaan / kirjoittamaan. Siinä on lähellä () ja avoin () toimintoja |
fstreambase | Se on luokkien perusluokka ifstream, fstream jastream. Sen toiminnot ovat yhteisiä tiedostovirroille. |
ifstream | Se on syötetiedostovirran luokka syöttötoimintojen tarjoamiseksi. |
ylävirtaan | Se on ulostulotiedostovirran luokka tulostustoimintojen tarjoamiseksi. |
virtaus | Se on tulo- / lähtövirran luokka. Se tukee samanaikaisia tulo- / lähtöoperaatioita. |
C ++ -otsikkotiedostot tuloa / lähtöä varten
C ++ tarjoaa kolme kirjastoa, joissa on toimintoja perus- ja lähtötehtävien suorittamiseen. Ne sisältävät:
- Iostream: Se on lyhenne tavallisesta tulo- / lähtövirrasta. Tämä otsikkotiedosto sisältää määritelmät kohteille, kuten cin / cout / cerr.
- Iomanip: Se on lyhenne tulo- / lähtö manipulaattoreille. Kirjastossa on toimintoja, joita voidaan käyttää virtojen käsittelyyn. Se sisältää määritelmiä kohteille kuten setw, setprecision ja muille.
- Fstream: Tämä on otsikkotiedosto tiedostovirran kuvaamiseen. Se käsittelee tietoja, jotka luetaan tiedostosta syötteinä tai jotka kirjoitetaan tiedostoon, lähtöön.
Cin- ja cout-avainsanat ovat erittäin suosittuja C ++: ssa. Niitä käytetään vastaavasti syötteiden ottamiseen ja tulostusten tulostamiseen. Jotta voit käyttää niitä, sinun on sisällytettävä iostream-otsikkotiedosto ohjelmaasi. Syynä on, että ne on määritelty kyseisessä otsikkotiedostossa. Iostream-otsikkotiedoston sisällyttämättä jättäminen aiheuttaa virheen. Tämä johtuu siitä, että C ++-kääntäjä ei ymmärtänyt avainsanojen merkitystä.
Iostream-otsikkotiedostossa määritellyt tärkeimmät objektit ovat cin, cout, cerr ja clog. Keskustellaan heistä.
vakio :: cout
Cout-objekti on iostream-luokan esiintymä. Sitä käytetään tuotoksen tuottamiseen tavalliselle lähtölaitteelle, joka on yleensä näyttö. Sitä käytetään yhdessä stream-lisäysoperaattorin (<<) kanssa.
Esimerkki:
#includeusing namespace std;int main() {char welcome[] = "Welcome to Guru99";cout << welcome << endl;return 0;}
Tuotos:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto, jossa cout-objekti on määritetty.
- Sisällytä vakio nimitila, jotta meidän ei tarvitse kutsua sitä luokkia käytettäessä.
- Kutsu main () -toiminto. Ohjelmakoodi tulisi lisätä sen runkoon. Avautuva kihara ahdin {merkitsee sen rungon alkua.
- Luo merkkimuuttuja nimeltä Welcome, jotta pidät merkkijonoa Welcome to Guru99.
- Tulosta merkkijonon tervetuloa arvo konsolille. Endl on C ++ -avainsana, joka tarkoittaa loppuriviä. Se siirtää kohdistinta aloittaaksesi tekstin tulostamisen seuraavalle riville.
- Ohjelman on palautettava arvo suorituksen jälkeen.
- Funktion rungon pää main ().
vakio :: cin
Cin-objekti on istream-luokan esiintymä. Se lukee syötteen syöttölaitteelta, näppäimistöltä. Sitä käytetään normaalisti yhdessä uuttamisoperaattorin (>>) kanssa. Puraobjekti on vastuussa näppäimistön kautta syötettyjen tietojen purkamisesta cin-objektista.
Esimerkki:
Seuraava esimerkki osoittaa, kuinka cin-avainsanaa käytetään C ++: ssa:
#includeusing namespace std;int main(){int number;cout << "Enter a number:";cin >> number;cout << "\nYou entered: " << number;return 0;}
Tuotos:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto ohjelmaamme. Cin-objekti on määritelty tässä otsikkotiedostossa.
- Sisällytä vakio nimitila käyttääksesi luokkia. Sinun ei tarvitse kutsua standardia, kun käytät sen luokkia.
- Kutsu main () -toiminto. Ohjelmakoodi tulisi lisätä sen runkoon.
- Ohjelman rungon alku.
- Ilmoita kokonaisluku muuttuja nimeltä numero.
- Tulosta näytölle viesti, jossa käyttäjää kehotetaan syöttämään numero.
- Lue käyttäjän kirjoittama arvo konsolille näppäimistöltä.
- Tulosta edellä lueteltu arvo konsolille muun tekstin rinnalle.
- Ohjelman tulisi palauttaa arvo, jos se suoritetaan onnistuneesti.
- Päätoiminnon rungon pää.
vakio :: cerr
Cerr-objekti muodostaa standardivirhevirran virheiden tulostamiseen C ++: ssa. Cerr on ostream-luokan esiintymä. Cerr-objekti on puskuroimaton. Tämä tarkoittaa, että sitä käytetään, kun virheilmoitus on tarkoitus näyttää välittömästi.
Koska sitä ei ole puskuroitu, se ei tallenna virheilmoitusta myöhempää näyttöä varten. Sitä käytetään yhdessä stream-lisäysoperaattorin (<<) kanssa.
Esimerkki:
#includeusing namespace std;int main() {cerr << "An Error occurred!";return 0;}
Tuotos:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto, jossa cerr-objekti on määritetty.
- Sisällytä vakio nimitila, jotta meidän ei tarvitse kutsua sitä luokkia käytettäessä.
- Kutsu main () -toiminto. Ohjelmalogiikka tulisi lisätä sen runkoon. Avautuva kihara ahdin merkitsee toiminnon rungon alkua.
- Tulosta virhe konsolille cerr-objektin avulla.
- Ohjelman on palautettava arvo suorituksen jälkeen.
- Päätoiminnon rungon pää.
std :: tukkia
Clog-objekti on ostream-luokan esiintymä. Sitä käytetään virheiden näyttämiseen vakionäytössä, näytössä. Se on samanlainen kuin cerr-objekti, mutta se on puskuroitu. Koska se on puskuroitu, se tallentaa virheilmoituksen puskuriin, kunnes puskuri on täytetty / huuhdeltu. Sitä käytetään yhdessä stream-lisäysoperaattorin (<<) kanssa.
Esimerkki:
#includeusing namespace std;int main() {clog << "An Error occurred!";return 0;}
Tuotos:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisältää iostream-otsikkotiedoston, jossa tukosobjekti on määritelty.
- Sisältää tavallisen nimitilan, jotta voimme käyttää sen luokkia kutsumatta sitä.
- Päätoiminnon () kutsuminen. Ohjelmalogiikka tulisi lisätä sen runkoon. {Tarkoittaa funktion rungon alkua.
- Tulosta virhe-esineellä virhe normaalilähtöön, näyttöön.
- Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
- Funktion rungon pää main ().
Virhe IO-virtojen käsittelyssä:
Voit tarkistaa, onko virta kelvollinen, käyttämällä sitä loogisena tietona.
Tässä on esimerkki:
ifstream file( "myfile.txt" );if ( ! file ){cout << "File NOT opened!" << endl;}
Saat lisätietoja virran tilasta käyttämällä näitä toimintoja:
- hyvä () - palaa totta, jos kaikki on kunnossa.
- huono () - palauttaa arvon tosi, jos tapahtuu kohtalokas virhe.
- Fail () - palaa tosi epäonnistuneen suoratoiston jälkeen.
- eof () - palauttaa arvon true, jos se saavuttaa tiedoston loppuun.
Testaa lukutulos, jotta tiedät, onnistuiko tietty luku- / kirjoitusoperaatio.
Voit esimerkiksi tarkistaa, onko käyttäjä kirjoittanut kelvollisen kokonaisluvun, seuraavasti:
int p;if ( cin >> p ){cout << "Enter valid number" << endl;}
Yhteenveto
- Syöttö- ja tulostustehtävät C ++: ssa suoritetaan tavusekvenssin kautta. Tavuja kutsutaan virroiksi.
- Syöttövirrassa tavut virtaavat syöttölaitteesta kuin näppäimistö päämuistiin.
- Lähtövirrassa tavut päämuistista sitten lähtölaitteeseen kuten näyttö.
- Cin-objekti on istream-luokan esiintymä. Se lukee syötteen syöttölaitteelta, kuten näppäimistöltä.
- Cout-objekti on ostream-luokan esiintymä. Se tuottaa ulostuloa lähtölaitteille, kuten monitorille.
- Cerr-objekti on ostream-luokan esiintymä. Se näyttää virheobjektit näytöllä.
- Clog-objekti on ostream-luokan ilmentymä. Se näyttää virheilmoitukset lähtölaitteissa.
- Tukosobjekti puskuroi virhesanomia, kun taas cerr-objekti ei.