Kas ir straumes C ++ versijā?
C ++ nodrošina lietotājiem vairākas bibliotēkas, kuras viņi var izmantot, lai veiktu ievades / izvades uzdevumus. Šie uzdevumi tiek veikti baitu secību veidā, ko tautā sauc par straumēm.
Straumes ir sadalītas divās daļās:
Plūsmu veidi
- Ievades straume: Šis ir straumes veids, kurā baiti plūst no ierīces, piemēram, tastatūras, uz galveno atmiņu.
- Izejas straume: Šis ir straumes veids, kurā baiti plūst pretējā virzienā, tas ir, no galvenās atmiņas, tad uz ierīci, piemēram, displeja ekrānu.
Šajā C ++ apmācībā jūs uzzināsiet:
- Kas ir straumes C ++ versijā?
- Kā darbojas straumes?
- Funkciju tabula
- C ++ galvenes faili ievadei / izejai
- std :: cout
- std :: cin
- std :: cerr
- std :: aizsprostot
- Kļūda, apstrādājot IO straumes:
Kā darbojas straumes?
C ++ plūsmas darbojas šādi:
- Pirmkārt, straume tiek inicializēta ar pareizo tipu.
- Pēc tam jums jānorāda, kur notiks I / O, izmantojot get / put rādītājus.
- Pēc straumē nokļūšanas pareizajā vietā jūs varat veikt ievades un izvades uzdevumus, izmantojot attiecīgi >> un << operatorus.
Funkciju tabula
Šīs ir galvenes failā stream.h nodrošinātās funkcijas:
Klase | Funkcijas |
Filebuf | Tas nosaka failu buferus lasīšanai / rakstīšanai. Tajā ir slēgtas () un atvērtas () funkcijas |
fstreambase | Tā ir klases klase ifstream, fstream unstream. Tās darbības ir kopīgas failu straumēm. |
ifstream | Tā ir ievades failu straumes klase ievades darbību nodrošināšanai. |
pa straumi | Tā ir izvades failu straumes klase izvades darbību nodrošināšanai. |
straume | Tā ir ievades / izvades straumes klase. Tas atbalsta vienlaicīgas ievades / izvades darbības. |
C ++ galvenes faili ievadei / izejai
C ++ nodrošina trīs bibliotēkas, kurās ir funkcijas pamata ievades / izvades uzdevumu veikšanai. Tie ietver:
- Iostream: tas ir akronīms standarta ievades / izvades straumei. Šajā galvenes failā ir definīcijas objektiem, piemēram, cin / cout / cerr.
- Iomanips: tas ir ievades / izvades manipulatoru saīsinājums. Bibliotēka ir aprīkota ar funkcijām, kuras var izmantot manipulācijām ar straumēm. Tas satur tādu objektu kā setw, setprecision un citu definīcijas.
- Fstream: Šis ir galvenes fails, lai aprakstītu failu straumi. Tas apstrādā datus, kas tiek nolasīti no faila kā ievade vai kas ir ierakstīti failā, izvadē.
Cin un cout atslēgvārdi ir ļoti populāri C ++. Tos izmanto attiecīgi ievades un izejas drukāšanai. Lai tos izmantotu, programmā jāiekļauj iostream galvenes fails. Iemesls ir tas, ka tie ir definēti šajā galvenes failā. Neiekļaujot iostream galvenes failu, tiks radīta kļūda. Tas izriet no C ++ kompilatora nespēja saprast atslēgvārdu nozīmi.
Galvenie objekti, kas definēti iostream galvenes failā, ir cin, cout, cerr un clog. Apspriedīsim tos.
std :: cout
Cout objekts ir iostream klases eksemplārs. To izmanto izejas ražošanai uz standarta izvades ierīces, kas parasti ir ekrāns. To lieto kopā ar straumes ievietošanas operatoru (<<).
Piemērs:
#includeusing namespace std;int main() {char welcome[] = "Welcome to Guru99";cout << welcome << endl;return 0;}
Izeja:
Šeit ir koda ekrānuzņēmums:
Koda skaidrojums:
- Iekļaujiet iostream galvenes failu, kur ir definēts cout objekts.
- Iekļaujiet standarta nosaukumvietu, lai mums to nevajadzētu izsaukt, izmantojot tās klases.
- Izsauciet galveno () funkciju. Programmas kods jāpievieno tās pamattekstā. Atverošā cirtainā lencīte {iezīmē tās ķermeņa sākumu.
- Izveidojiet rakstzīmju mainīgo ar nosaukumu welcome, lai turētu virkni Welcome to Guru99.
- Konsolē izdrukājiet string string vērtību. Endl ir C ++ atslēgvārds, kas nozīmē beigu līniju. Tas pārvieto kursoru, lai sāktu teksta drukāšanu nākamajā rindā.
- Pēc veiksmīgas izpildes programmai ir jāatgriež vērtība.
- Funkcijas galvenā daļa ().
std :: cin
Cin objekts ir istream klases eksemplārs. Tas nolasa ievadi no ievades ierīces, tastatūras. Parasti to lieto kopā ar ekstrakcijas operatoru (>>). Iegūšanas objekts ir atbildīgs par datu, kas ievadīti caur tastatūru, iegūšanu no cin objekta.
Piemērs:
Šis piemērs parāda, kā lietot cin atslēgvārdu C ++:
#includeusing namespace std;int main(){int number;cout << "Enter a number:";cin >> number;cout << "\nYou entered: " << number;return 0;}
Izeja:
Šeit ir koda ekrānuzņēmums:
Koda skaidrojums:
- Iekļaujiet iostream galvenes failu mūsu programmā. Cin objekts ir definēts šajā galvenes failā.
- Iekļaujiet standarta nosaukumvietu, lai izmantotu tās klases. Izmantojot klases, jums nebūs jāzvana std.
- Izsauciet galveno () funkciju. Programmas kods jāpievieno tās pamattekstā.
- Programmas pamatteksta sākums.
- Paziņojiet vesela skaitļa mainīgo ar nosaukumu.
- Ekrānā izdrukājiet ziņojumu, kurā lietotājs tiek aicināts ievadīt numuru.
- No tastatūras nolasiet lietotāja ievadīto vērtību konsolē.
- Drukājiet iepriekš nolasīto vērtību konsolē līdzās citam tekstam.
- Programmai jāatgriež vērtība, ja tā tiek veiksmīgi izpildīta.
- Galvenās funkcijas ķermeņa beigas.
std :: cerr
Cerr objekts veido standarta kļūdu plūsmu kļūdu izvadei C ++. Cerrs ir ostream klases eksemplārs. Cerr objekts nav buferēts. Tas nozīmē, ka tas tiek izmantots, ja nekavējoties jāparāda kļūdas ziņojums.
Tā kā tas nav buferēts, tas neglabā kļūdas ziņojumu vēlākam displejam. To lieto kopā ar straumes ievietošanas operatoru (<<).
Piemērs:
#includeusing namespace std;int main() {cerr << "An Error occurred!";return 0;}
Izeja:
Šeit ir koda ekrānuzņēmums:
Koda skaidrojums:
- Iekļaujiet iostream galvenes failu, kur ir definēts cerr objekts.
- Iekļaujiet standarta nosaukumvietu, lai mums to nevajadzētu izsaukt, izmantojot tās klases.
- Izsauciet galveno () funkciju. Programmas loģika jāpievieno tās pamattekstā. Atverošā cirtainā lencīte iezīmē funkcijas ķermeņa sākumu.
- Izmantojiet objektu cerr, lai konsolē izdrukātu kļūdu.
- Pēc veiksmīgas izpildes programmai jāatgriež vērtība.
- Galvenās funkcijas ķermeņa beigas.
std :: aizsprostot
Aizsērēšanas objekts ir ostream klases eksemplārs. To izmanto, lai parādītu kļūdas standarta displejā, monitorā. Tas ir līdzīgs cerr objektam, bet tas ir buferēts. Tā kā tas ir buferēts, tas saglabā kļūdas ziņojumu buferī, līdz buferis ir piepildīts / izskalots. To lieto kopā ar straumes ievietošanas operatoru (<<).
Piemērs:
#includeusing namespace std;int main() {clog << "An Error occurred!";return 0;}
Izeja:
Šeit ir koda ekrānuzņēmums:
Koda skaidrojums:
- Ieskaitot iostream galvenes failu, kurā ir definēts aizsērēšanas objekts.
- Ieskaitot standarta nosaukumvietu, lai mēs varētu izmantot tās klases, to neizsaucot.
- Galvenās () funkcijas izsaukšana. Programmas loģika jāpievieno tās pamattekstā. {Apzīmē funkcijas ķermeņa sākumu.
- Izmantojiet aizsērēšanas objektu, lai izdrukātu kļūdu standarta izvadā - monitorā.
- Pēc sekmīgas pabeigšanas programmai jāatgriež vērtība.
- Funkcijas galvenā ķermeņa daļa ().
Kļūda, apstrādājot IO straumes:
Lai pārbaudītu, vai straume ir derīga, varat to izmantot kā Būla skaitli.
Šeit ir piemērs:
ifstream file( "myfile.txt" );if ( ! file ){cout << "File NOT opened!" << endl;}
Lai iegūtu sīkāku informāciju par straumes statusu, varat izmantot šīs funkcijas:
- labi () - atgriezīsies patiess, ja viss būs kārtībā.
- slikts () - atgriezīsies patiess, ja notiks liktenīga kļūda.
- fail () - atgriezīsies patiess pēc neveiksmīgas straumes darbības.
- eof () - atgriezīsies patiess, ja sasniegs faila beigas.
Lai uzzinātu, vai kāda lasīšanas / rakstīšanas operācija neizdevās, pārbaudiet lasīšanas rezultātu.
Piemēram, lai pārbaudītu, vai lietotājs ir ievadījis derīgu veselu skaitli, rīkojieties šādi:
int p;if ( cin >> p ){cout << "Enter valid number" << endl;}
Kopsavilkums
- Ievades un izvades uzdevumi C ++ tiek veikti, izmantojot baitu secību. Baitus sauc par straumēm.
- Ievades straumē baiti plūst no ievades ierīces kā tastatūra uz galveno atmiņu.
- Izejas straumē baiti no galvenās atmiņas, pēc tam uz izvades ierīci, piemēram, monitoru.
- Cin objekts ir istream klases eksemplārs. Tas nolasa ievadi no ievades ierīces, piemēram, tastatūras.
- Cout objekts ir ostream klases eksemplārs. Tas rada izvadi uz izvades ierīcēm, piemēram, monitoru.
- Cerr objekts ir ostream klases eksemplārs. Tas parāda kļūdas objektus monitorā.
- Nosprostojuma objekts ir ostream klases eksemplārs. Tas parāda kļūdu ziņojumus izvades ierīcēs.
- Aizsērēšanas objekts buferē kļūdu ziņojumus, turpretī cerr objekts to nedara.