C ++ Alap bemenet / kimenet: Cout, Cin, Cerr példa

Tartalomjegyzék:

Anonim

Mik azok az adatfolyamok a C ++ verzióban?

A C ++ számos könyvtárat biztosít a felhasználóknak, amelyeket felhasználhatnak a bemeneti / kimeneti feladatok elvégzésére. Ezeket a feladatokat bájtsorozatok formájában hajtják végre, amelyeket népiesen streameknek nevezünk.

A folyamok két részre oszlanak:

Patakok típusai

  • Input Stream: Ez egy olyan típusú adatfolyam, ahol a bájtok egy eszközről, például egy billentyűzetről, a fő memóriába áramlanak.
  • Kimeneti adatfolyam: Ez egy olyan típusú adatfolyam, ahol a bájtok ellentétes irányban áramlanak, vagyis a fő memóriából azután az eszközbe, például a képernyőre.

Ebben a C ++ oktatóanyagban megtudhatja:

  • Mik azok az adatfolyamok a C ++ verzióban?
  • Hogyan működnek a folyamok?
  • Funkciótábla
  • C ++ fejlécfájlok az Input / Output számára
  • std :: cout
  • std :: cin
  • std :: cerr
  • std :: dugulás
  • Hiba az IO-folyamok kezelésekor:

Hogyan működnek a folyamok?

A C ++ folyamok a következőképpen működnek:

  1. Először egy adatfolyamot inicializálunk a megfelelő típussal.
  2. Ezután a get / put mutatók használatával meg kell adnia, hogy hol következik be az I / O.
  3. Miután egy adatfolyamban a megfelelő helyre került, a >>, illetve a << operátorokkal végezhet be- és kimeneti feladatokat.

Funkciótábla

A stream.h fejlécfájlban a következő funkciók találhatók:

Osztály Funkciók
Filebuf Fájlpuffereket állít be olvasásra / írásra. Bezáró () és nyitott () funkciók vannak benne
fstreambase Ez az alaposztály az ifstream, fstream és ofstream osztályok számára. Műveletei közösek a fájlfolyamokon.
ifstream Ez egy bemeneti fájlfolyam osztály bemeneti műveletek biztosítására.
a folyam felett Ez egy kimeneti fájlfolyam osztály kimeneti műveletek biztosítására.
folyam Ez egy input / output stream osztály. Támogatja az egyidejű bemeneti / kimeneti műveleteket.

C ++ fejlécfájlok az Input / Output számára

A C ++ három olyan könyvtárat kínál, amelyek funkciókkal rendelkeznek az alapvető bemeneti / kimeneti feladatok végrehajtásához. Tartalmazzák:

  • Iostream: Ez a standard bemeneti / kimeneti adatfolyam rövidítése. Ez a fejlécfájl olyan objektumok definícióival rendelkezik, mint a cin / cout / cerr.
  • Iomanip: Ez az input / output manipulátorok rövidítése. A könyvtár olyan funkciókkal rendelkezik, amelyek felhasználhatók a folyamok manipulálására. Olyan objektumok definícióit tartalmazza, mint a setw, setprecision és mások.
  • Fstream: Ez egy fejlécfájl a fájlfolyam leírására. Kezeli azokat az adatokat, amelyeket fájlból olvasnak bemenetként, vagy amelyeket fájlba, kimenetként írnak.

A cin és cout kulcsszavak nagyon népszerűek a C ++ nyelven. Ezeket bemenetek, illetve kimenetek nyomtatására használják. Használatukhoz az iostream header fájlt be kell illesztenie a programba. Ennek oka, hogy az adott fejlécfájlban vannak meghatározva. Ha nem tartalmazza az iostream fejlécfájlt, hiba keletkezik. Ennek az az oka, hogy a C ++ fordító nem értette meg a kulcsszavak jelentését.

Az iostream fejlécfájlban meghatározott fő objektumok: cin, cout, cerr és clog. Beszéljük meg őket.

std :: cout

A cout objektum az iostream osztály példánya. Kimenet előállítására szolgál egy normál kimeneti eszközön, amely általában a képernyő. A streambeillesztési operátorral együtt használják (<<).

Példa:

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

Kimenet:

Itt van egy képernyőkép a kódról:

Kód Magyarázat:

  1. Tartalmazza az iostream fejlécfájlt, ahol a cout objektum meg van határozva.
  2. Tartalmazza az std névteret, hogy ne kelljen meghívnunk az osztályok használatakor.
  3. Hívja meg a main () függvényt. A programkódot hozzá kell adni a törzséhez. A nyitó göndör merevítő {testének kezdetét jelöli.
  4. Hozzon létre egy welcome nevű karakterváltozót az Welcome to Guru99 karakterlánc megtartásához.
  5. Nyomtassa ki az üdvözlő karakterlánc értékét a konzolon. Az endl egy C ++ kulcsszó, amely végvonalat jelent. A kurzort elmozdítja a szöveg nyomtatásához a következő sorra.
  6. A programnak vissza kell adnia az értéket a sikeres végrehajtás után.
  7. A funkciótest vége main ().

std :: cin

A cin objektum az istream osztály példánya. Beolvassa az input eszközt, a billentyűzetet. Általában az extrakciós operátorral együtt használják (>>). Az extrakciós objektum felelős a billentyűzeten keresztül beírt adatok kinyeréséért a cin objektumból.

Példa:

A következő példa bemutatja a cin kulcsszó C ++ nyelven történő használatát:

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

Kimenet:

Itt van egy képernyőkép a kódról:

Kód Magyarázat:

  1. Vegye fel az iostream fejléc fájlt programunkba. A cin objektum ebben a fejlécfájlban van meghatározva.
  2. Az osztályok használatához vegye fel az std névteret. Az osztályok használatakor nem kell meghívnia az std-t.
  3. Hívja meg a main () függvényt. A programkódot hozzá kell adni a törzséhez.
  4. A program törzsének kezdete.
  5. Nyújtson be egész számú változót.
  6. Nyomtasson ki egy üzenetet a képernyőn, amelyben arra kéri a felhasználót, hogy adjon meg egy számot.
  7. Olvassa le a billentyűzetről a felhasználó által a konzolon megadott értéket.
  8. Nyomtassa ki a fent olvasható értéket a konzolra más szöveg mellé.
  9. A programnak vissza kell adnia egy értéket, ha sikeresen végrehajtja.
  10. A fő funkció törzsének vége.

std :: cerr

A cerr objektum képezi a szabványos hibaáramot a hibák C ++ nyelven történő kiadásához. Cerr az ostream osztály példánya. A cerr objektum nincs pufferelve. Ez azt jelenti, hogy akkor használják, ha azonnal hibaüzenetet kell megjeleníteni.

Mivel nincs csomagolva, nem tárol hibaüzenetet egy későbbi megjelenítéshez. A streambeillesztési operátorral együtt használják (<<).

Példa:

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

Kimenet:

Itt van egy képernyőkép a kódról:

Kód Magyarázat:

  1. Tartalmazza az iostream fejlécfájlt, ahol a cerr objektum meg van határozva.
  2. Tartalmazza az std névteret, hogy ne kelljen meghívnunk az osztályok használatakor.
  3. Hívja meg a main () függvényt. A program logikáját hozzá kell adni a törzséhez. A nyitó göndör zárójel jelöli a funkció testének kezdetét.
  4. A cerr objektummal hibát nyomtathat a konzolra.
  5. A programnak sikeres végrehajtáskor vissza kell adnia egy értéket.
  6. A fő funkció törzsének vége.

std :: dugulás

A clog objektum az ostream osztály példánya. A hibák megjelenítésére szolgál a szokásos kijelzőn, a monitoron. Hasonló a cerr objektumhoz, de pufferolt. Mivel pufferelt, addig tárolja a hibaüzenetet a pufferben, amíg a puffer meg nem töltődik / ki nem öblíti. A streambeillesztési operátorral együtt használják (<<).

Példa:

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

Kimenet:

Itt van egy képernyőkép a kódról:

Kód Magyarázat:

  1. Beleértve az iostream fejlécfájlt, amelyben a clog objektum meg van határozva.
  2. Beleértve az std névteret, hogy az osztályait felhasználhassuk anélkül, hogy felhívnánk.
  3. A main () függvény meghívása. A program logikáját hozzá kell adni a törzséhez. A {a függvény testének kezdetét jelöli.
  4. Az eldugult objektummal hibát nyomtathat a szabványos kimenetre, a monitorra.
  5. A programnak eredményt kell adnia a sikeres befejezés után.
  6. A funkciótest vége main ().

Hiba az IO-folyamok kezelésekor:

Annak ellenőrzéséhez, hogy egy adatfolyam érvényes-e vagy sem, használhatja azt logikai elemként.

Íme egy példa:

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

Ha további részleteket szeretne kapni az adatfolyam állapotáról, használja ezeket a funkciókat:

  • jó () - igaz lesz, ha minden rendben van.
  • rossz () - igaz lesz, ha végzetes hiba történik.
  • fail () - sikertelen adatfolyam-művelet után true-ra tér vissza.
  • Az eof () - igaz lesz, ha elér egy fájl végét.

Ellenőrizze az olvasási eredményt, hogy megtudja, nem sikerült-e egy adott olvasási / írási művelet.

Például annak ellenőrzéséhez, hogy a felhasználó érvényes egész számot adott-e meg, tegye a következőket:

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

Összegzés

  • A be- és kimeneti feladatok a C ++ nyelven bájtsorrenden keresztül történnek. A bájtokat streameknek nevezzük.
  • A bemeneti adatfolyamban a bájtok az adatbeviteli eszközből billentyűzetként áramlanak a fő memóriába.
  • Egy kimeneti adatfolyamban a bájtok a fő memóriából, majd egy kimeneti eszközbe, mint egy monitor.
  • A cin objektum az istream osztály példánya. Beolvassa a bemenetet egy olyan beviteli eszközről, mint a billentyűzet.
  • A cout objektum az ostream osztály példánya. Kimenetet produkál olyan kimeneti eszközökön, mint a monitor.
  • A cerr objektum az ostream osztály példánya. Hibaobjektumokat jelenít meg a monitoron.
  • A clog objektum az ostream osztály példánya. Hibaüzeneteket jelenít meg a kimeneti eszközökön.
  • Az eltömő objektum puffereli a hibaüzeneteket, míg a cerr objektum nem.