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:
- Először egy adatfolyamot inicializálunk a megfelelő típussal.
- Ezután a get / put mutatók használatával meg kell adnia, hogy hol következik be az I / O.
- 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:
#includeusing 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:
- Tartalmazza az iostream fejlécfájlt, ahol a cout objektum meg van határozva.
- Tartalmazza az std névteret, hogy ne kelljen meghívnunk az osztályok használatakor.
- 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.
- Hozzon létre egy welcome nevű karakterváltozót az Welcome to Guru99 karakterlánc megtartásához.
- 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.
- A programnak vissza kell adnia az értéket a sikeres végrehajtás után.
- 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:
#includeusing 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:
- Vegye fel az iostream fejléc fájlt programunkba. A cin objektum ebben a fejlécfájlban van meghatározva.
- Az osztályok használatához vegye fel az std névteret. Az osztályok használatakor nem kell meghívnia az std-t.
- Hívja meg a main () függvényt. A programkódot hozzá kell adni a törzséhez.
- A program törzsének kezdete.
- Nyújtson be egész számú változót.
- Nyomtasson ki egy üzenetet a képernyőn, amelyben arra kéri a felhasználót, hogy adjon meg egy számot.
- Olvassa le a billentyűzetről a felhasználó által a konzolon megadott értéket.
- Nyomtassa ki a fent olvasható értéket a konzolra más szöveg mellé.
- A programnak vissza kell adnia egy értéket, ha sikeresen végrehajtja.
- 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:
#includeusing 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:
- Tartalmazza az iostream fejlécfájlt, ahol a cerr objektum meg van határozva.
- Tartalmazza az std névteret, hogy ne kelljen meghívnunk az osztályok használatakor.
- 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.
- A cerr objektummal hibát nyomtathat a konzolra.
- A programnak sikeres végrehajtáskor vissza kell adnia egy értéket.
- 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:
#includeusing 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:
- Beleértve az iostream fejlécfájlt, amelyben a clog objektum meg van határozva.
- Beleértve az std névteret, hogy az osztályait felhasználhassuk anélkül, hogy felhívnánk.
- 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.
- Az eldugult objektummal hibát nyomtathat a szabványos kimenetre, a monitorra.
- A programnak eredményt kell adnia a sikeres befejezés után.
- 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.