Kas yra srautai C ++ versijoje?
„C ++“ suteikia vartotojams daugybę bibliotekų, kurias jie gali naudoti įvesties / išvesties užduotims atlikti. Šios užduotys atliekamos baitų sekų, liaudyje vadinamų srautais, pavidalu.
Srautai yra suskirstyti į dvi:
Srautų tipai
- Įvesties srautas: tai srauto tipas, kai baitai teka iš įrenginio, pavyzdžiui, klaviatūros, į pagrindinę atmintį.
- Išvesties srautas: tai srauto tipas, kai baitai teka priešinga kryptimi, ty iš pagrindinės atminties, tada į įrenginį, pvz., Ekrano ekraną.
Šioje C ++ pamokoje sužinosite:
- Kas yra srautai C ++ versijoje?
- Kaip veikia srautai?
- Funkcijų lentelė
- C ++ antraštės failai įvesties / išvesties
- std :: cout
- std :: cin
- std :: cerr
- std :: užkimšti
- Klaida tvarkant IO srautus:
Kaip veikia srautai?
C ++ srautai veikia taip:
- Pirma, srautas inicijuojamas tinkamo tipo.
- Tada turėtumėte nurodyti, kur įvyks įvestis / išvestis, naudodamiesi „get / put“ nuorodomis.
- Patekę į reikiamą vietą sraute, galite atlikti įvesties ir išvesties užduotis naudodami atitinkamai >> ir << operatorius.
Funkcijų lentelė
Toliau pateikiamos „stream.h“ antraštės faile pateikiamos funkcijos:
Klasė | Funkcijos |
Filebuf | Jis nustato failų buferius skaityti / rašyti. Jame yra uždaros () ir atviros () funkcijos |
fstreambase | Tai yra „ifstream“, „stream“ ir „upstream“ klasių pagrindinė klasė. Jo operacijos yra bendros failų srautams. |
ifstream | Tai įvesties failų srauto klasė, skirta teikti įvesties operacijas. |
prieš srovę | Tai išvesties failų srauto klasė, skirta teikti išvesties operacijas. |
srovė | Tai įvesties / išvesties srauto klasė. Jis palaiko vienu metu įvesties / išvesties operacijas. |
C ++ antraštės failai įvesties / išvesties
„C ++“ pateikia tris bibliotekas, kuriose yra funkcijos, skirtos pagrindinėms įvesties / išvesties užduotims atlikti. Jie įtraukia:
- „Iostream“: tai standartinio įvesties / išvesties srauto trumpinys. Šiame antraštės faile pateikiami tokių objektų kaip cin / cout / cerr apibrėžimai.
- Iomanipas: tai įvesties / išvesties manipuliatorių trumpinys. Biblioteka ateina su funkcijomis, kurios gali būti naudojamos manipuliuojant srautais. Jame yra tokių objektų kaip „setw“, „setprecision“ ir kitų apibrėžimai.
- Srautas: Tai antraštės failas, skirtas aprašyti failų srautą. Jis tvarko duomenis, kurie nuskaitomi iš failo kaip įvestis arba kurie įrašomi į failą, išvestį.
Cin ir cout raktiniai žodžiai yra labai populiarūs C ++. Jie naudojami atitinkamai imant ir spausdinant išvestis. Norėdami juos naudoti, į savo programą turite įtraukti „iostream“ antraštės failą. Priežastis ta, kad jie yra apibrėžti tame antraštės faile. Neįtraukus „iostream“ antraštės failo, bus sukurta klaida. Taip yra dėl to, kad C ++ kompiliatorius nesuprato raktinių žodžių prasmės.
Pagrindiniai „iostream“ antraštės faile apibrėžti objektai yra „cin“, „cout“, „cerr“ ir „clog“. Aptarkime juos.
std :: cout
„Cout“ objektas yra „iostream“ klasės egzempliorius. Jis naudojamas gaminant išvestį iš standartinio išvesties įrenginio, kuris paprastai yra ekranas. Jis naudojamas kartu su srauto įterpimo operatoriumi (<<).
Pavyzdys:
#includeusing namespace std;int main() {char welcome[] = "Welcome to Guru99";cout << welcome << endl;return 0;}
Išvestis:
Čia yra kodo ekrano kopija:
Kodo paaiškinimas:
- Įtraukite „iostream“ antraštės failą ten, kur apibrėžtas „cout“ objektas.
- Įtraukite standartinę vardų sritį, kad mums nereikėtų jos vadinti, kai naudojamės jos klasėmis.
- Iškvieskite pagrindinę () funkciją. Programos kodas turėtų būti įtrauktas į jos turinį. Atidaromas garbanotas petneša {žymi jo kūno pradžią.
- Sukurkite simbolių kintamąjį pavadinimu „welcome“, kad laikytumėte eilutę „Welcome to Guru99“.
- Spausdinkite eilutėje sveikinimo reikšmę konsolėje. Pabaiga yra C ++ raktinis žodis, reiškiantis pabaigos eilutę. Jis perkelia žymeklį ir pradeda spausdinti tekstą kitoje eilutėje.
- Sėkmingai įvykdžius, programa turi grąžinti vertę.
- Funkcijos kūno pabaiga main ().
std :: cin
„Cin“ objektas yra „istream“ klasės egzempliorius. Jis nuskaito įvestį iš įvesties įrenginio, klaviatūros. Paprastai jis naudojamas kartu su gavybos operatoriumi (>>). Ištraukimo objektas yra atsakingas už duomenų, įvestų per klaviatūrą, išskyrimą iš „cin“ objekto.
Pavyzdys:
Šis pavyzdys parodo, kaip naudoti „cin“ raktinį žodį C ++:
#includeusing namespace std;int main(){int number;cout << "Enter a number:";cin >> number;cout << "\nYou entered: " << number;return 0;}
Išvestis:
Čia yra kodo ekrano kopija:
Kodo paaiškinimas:
- Įtraukite „iostream“ antraštės failą į mūsų programą. Cin objektas yra apibrėžtas šiame antraštės faile.
- Įtraukite standartinę vardų sritį, kad galėtumėte naudoti jos klases. Jums nereikės kviesti standarto, kai naudojate jo klases.
- Iškvieskite pagrindinę () funkciją. Programos kodas turėtų būti įtrauktas į jos turinį.
- Programos turinio pradžia.
- Paskelbkite sveiko skaičiaus kintamąjį, pavadintą skaičiumi.
- Ekrane atsispausdinkite pranešimą, ragindami vartotoją įvesti numerį.
- Iš klaviatūros perskaitykite vartotojo įvestą reikšmę konsolėje.
- Atsispausdinkite aukščiau perskaitytą vertę konsolėje kartu su kitu tekstu.
- Jei programa vykdoma sėkmingai, programa turėtų grąžinti vertę.
- Pagrindinės funkcijos kūno pabaiga.
std :: cerr
Cerr objektas sudaro standartinį klaidų srautą, skirtą klaidoms išleisti C ++. Cerr yra „ostream“ klasės pavyzdys. Cerr objektas nėra perkeltas. Tai reiškia, kad jis naudojamas, kai klaidos pranešimas turi būti rodomas nedelsiant.
Kadangi jis nėra perkeltas, jis nesaugo klaidos pranešimo, kad būtų rodomas vėliau. Jis naudojamas kartu su srauto įterpimo operatoriumi (<<).
Pavyzdys:
#includeusing namespace std;int main() {cerr << "An Error occurred!";return 0;}
Išvestis:
Čia yra kodo ekrano kopija:
Kodo paaiškinimas:
- Įtraukite „iostream“ antraštės failą ten, kur buvo apibrėžtas „cerr“ objektas.
- Įtraukite standartinę vardų sritį, kad mums nereikėtų jos vadinti, kai naudojamės jos klasėmis.
- Iškvieskite pagrindinę () funkciją. Programos logika turėtų būti įtraukta į jos turinį. Atidaromas garbanotas breketas žymi funkcijos kūno pradžią.
- Naudokite „cerr“ objektą, jei norite atspausdinti klaidą konsolėje.
- Sėkmingai įvykdžius, programa turi grąžinti vertę.
- Pagrindinės funkcijos kūno pabaiga.
std :: užkimšti
„Clog“ objektas yra „ostream“ klasės egzempliorius. Jis naudojamas klaidoms rodyti standartiniame ekrane - monitoriuje. Jis panašus į „cerr“ objektą, tačiau jis yra buferinis. Kadangi jis yra buferinis, jis saugo klaidos pranešimą buferyje, kol buferis bus užpildytas / nuplautas. Jis naudojamas kartu su srauto įterpimo operatoriumi (<<).
Pavyzdys:
#includeusing namespace std;int main() {clog << "An Error occurred!";return 0;}
Išvestis:
Čia yra kodo ekrano kopija:
Kodo paaiškinimas:
- Įskaitant „iostream“ antraštės failą, kuriame apibrėžtas klumpės objektas.
- Įtraukiant standartinę vardų sritį, kad mes galėtume naudoti jos klases nepaskambinę.
- Pagrindinės () funkcijos iškvietimas. Programos logika turėtų būti įtraukta į jos turinį. {Žymi funkcijos kūno pradžią.
- Naudodami užkimšimo objektą atspausdinkite klaidą standartinėje išvestyje, monitoriuje.
- Sėkmingai baigusi programa turi grąžinti vertę.
- Funkcijos kūno pagrindas ().
Klaida tvarkant IO srautus:
Norėdami patikrinti, ar srautas galioja, ar ne, galite jį naudoti kaip loginę reikšmę.
Štai pavyzdys:
ifstream file( "myfile.txt" );if ( ! file ){cout << "File NOT opened!" << endl;}
Norėdami gauti daugiau informacijos apie srauto būseną, galite naudoti šias funkcijas:
- gerai () - grįš tiesa, jei viskas gerai.
- blogas () - pateiks tiesą, jei įvyktų lemtinga klaida.
- fail () - grįš į true po nesėkmingo srauto operacijos.
- eof () - grįš tiesa, jei pasieks failo pabaigą.
Norėdami sužinoti, ar tam tikra skaitymo / rašymo operacija nepavyko, patikrinkite skaitymo rezultatą.
Pvz., Norėdami patikrinti, ar vartotojas įvedė teisingą sveikąjį skaičių, atlikite tai:
int p;if ( cin >> p ){cout << "Enter valid number" << endl;}
Santrauka
- C ++ įvesties ir išvesties užduotys atliekamos per baitų seką. Baitai vadinami srautais.
- Įvesties sraute baitai teka iš įvesties įrenginio kaip klaviatūra į pagrindinę atmintį.
- Išvesties sraute baitai iš pagrindinės atminties į išvesties įrenginį, pavyzdžiui, monitorių.
- „Cin“ objektas yra „istream“ klasės egzempliorius. Jis nuskaito įvestį iš įvesties įrenginio, pavyzdžiui, klaviatūros.
- „Cout“ objektas yra „ostream“ klasės egzempliorius. Jis gamina išvestį tokiuose išvesties įrenginiuose kaip monitorius.
- Cerr objektas yra ostream klasės egzempliorius. Monitoriuje rodomi klaidos objektai.
- „Clog“ objektas yra „ostream“ klasės egzempliorius. Išvesties įrenginiuose rodomi klaidų pranešimai.
- Užsikimšimo objektas buferizuoja klaidos pranešimus, o „cerr“ objektas - ne.