Funcții C++ istream

Functii C Istream



Termenul „flux” în C++ descrie fluxul de caractere dintre firul de execuție al programului și i/o. Clasele de flux C++ sunt necesare pentru a introduce și ieși acțiuni pe dispozitive și fișiere IO. Aceste clase sunt concepute pentru a gestiona intrarea și ieșirea programului și au o funcționalitate specială.

Ierarhia clasei de flux

O clasă C++ este alcătuită din metode necesare pentru a gestiona și guverna datele pe care le conține.

float, duble și clase sunt tipuri de date similare cu int. O variabilă unică cu o clasă ca tip de date este denumită obiect C++. Obiectele speciale prespecificate „cin” și „cout” au diferite clase ca tipuri de date.







Datele scrise în „cout” sau citite din „cin” sunt exemple de fluxuri de date în sau din programe în C++. În prezent, luăm în considerare următoarele patru clase pentru aceasta:



Transmiteți-l în flux
Orice scop poate fi servit de acest flux de intrare. O ilustrare a unui istream este cin.



Ostream
Este un flux de ieșire cu mai multe utilizări. Ostreams vin sub forme de cout și cin.





Dacă stream
Este un flux de fișiere de intrare.

De curent
Este un flux de fișiere de ieșire. Moștenirea este o noțiune care este foarte folosită în programarea orientată pe obiecte, cum ar fi în C++, unde unele clase preiau caracteristicile altor clase care au fost deja create. Clasele strămoșilor devin apoi specializări ale lor prin includerea de noi caracteristici.



Dacă stream class
Un ifstream poate fi tratat în același mod ca un istream, care este ceea ce este.

De clasa stream
În același mod în care funcționează ifstreams, dar cu ieșire în loc de intrare, un ofstream este un flux de fișier de ieșire. Un ofstream este folosit în același mod ca cout după ce a fost construit, deschis și verificat pentru a nu avea erori.

clasa Ios
Din această clasă, toate clasele de flux au coborât. Fluxurile de intrare și de ieșire sunt două tipuri diferite.

Acesta definește părțile fluxului care sunt independente de starea de intrare sau de ieșire a fluxului în baza ios.

Spre deosebire de membrii care sunt discutați în baza ios, membrii care depind de parametrii șablonului sunt descriși în această parte.

Flux (intrare)
Datorită complexității bibliotecii iostream, nu o vom putea acoperi în întregime în aceste lecții. Cu toate acestea, vom evidenția funcțiile care sunt cele mai utilizate. În această secțiune, ne vom uita la clasa de intrare dintr-o varietate de unghiuri (istream).

Am aflat că operatorul de extracție (>>) va fi utilizat pentru a achiziționa datele dintr-un flux de intrare.

CURENT

În limbajul de programare C++, fluxul de intrare este gestionat de clasa istream. Intrarea este citită și înțeleasă ca o serie de caractere folosind aceste obiecte flux de intrare. Intrarea este gestionată de cin.

Clasele de membri

istream::sentinelă
O clasă care efectuează multe sarcini și de fiecare dată se efectuează o procedură de introducere. Destructorul său nu este obligat să efectueze nicio acțiune. Cu toate acestea, implementările pot executa sarcini suplimentare de pornire sau de curățare pe fluxul partajat de toate operațiunile de intrare, folosind crearea și distrugerea obiectelor santinelă.

Funcții

istream::gcount
Oferă numărul de caractere care a fost obținut din cea mai recentă acțiune de intrare neformatată a obiectului. Procedurile de intrare neformatate — get, getline, ignore, peek, read, read some, putback și unget — modifică valoarea returnată de această funcție. Cu toate acestea, rețineți că apelarea peeks, putback sau unget nu extrage niciun caracter. Ca rezultat, numărul va returna întotdeauna 0.

istream::get
Singurul personaj scoate un personaj din flux. Caracterul este fie setat ca valoare a argumentului, fie returnat (prima semnătură) (a doua semnătură).

Șir C: Dacă caracterul de delimitare este prezent, acesta nu este eliminat din secvența de intrare, ci păstrat ca următorul caracter pentru a fi preluat din flux dacă este prezent.

istream::getline
Elimină caracterele din flux ca intrare neformatată și le salvează ca șir c în variabila „s” până când caracterul extras devine caracterul de delimitare sau „n” caractere au fost scrise în „s”. În plus, metoda va opri extragerea caracterelor dacă ajunge la sfârșitul fișierului.

Intern, funcția creează un obiect înainte de a accesa secvența de intrare. În cele din urmă, ucide obiectul înainte de a reveni, extragând caractere din obiectul său tampon de flux asociat (presupunând că totul este în ordine) ca și cum ar executa una dintre metodele sale membre, sbumpc sau sgetc.

istream::ignora
Caracterele sunt preluate din secvența de intrare și eliminate pe rând până când fie „n” caractere au fost scoase, fie se compară unul egal cu delim. În plus, dacă se ajunge la sfârșitul fișierului, funcția oprește extragerea caracterelor. Funcția setează indicatorul „eofbit” dacă ajunge prea devreme în acest punct (înainte de a extrage n caractere sau de a descoperi delim).

Înainte de a accesa secvența de intrare, funcția construiește un obiect santinelă intern (cu noskipws va fi adevărat). În cele din urmă, ucide obiectul santinelă înainte de a se întoarce, extragând caractere din obiectul său tampon de flux asociat (presupunând că totul este în ordine) ca și cum ar executa una dintre metodele sale membre: sbumpc sau sgetc.

istream::operator>>
Operatorul de extracție (>>) aplică acest operator unui flux de intrare. Are prea mulți membri ca funcție.

Tipul aritmetic

Caracterele sunt scoase din flux și analizate secvenţial pentru a reprezenta o valoare de tipul potrivit, care este apoi salvată ca valoare „val”. Înainte de a accesa secvența de intrare, funcția construiește un obiect santinelă intern (noskipws va fi fals). Dacă totul se verifică bine, atunci rulează num get::get pentru a finaliza procesele de extracție și analizare în timp ce modifică steagurile interne ale fluxului. Obiectul santinelă este în cele din urmă distrus înainte de a pleca.

Funcția generează intern un obiect santinelă înainte de a citi secvența de intrare, este văzută ca efectuând intrare formatată. În cele din urmă, ucide obiectul santinelă înainte de a se întoarce, extragând caractere din obiectul său tampon de flux asociat (presupunând că totul este în ordine) ca și cum ar executa una dintre metodele sale membre, sbumpc sau sgetc.

Manipulatoare

Se numește pf (*this), unde pf ar putea fi un manipulator. Manipulatoarele sunt rutine create special pentru a fi apelate atunci când acest operator este invocat. Secvența de introducere nu este afectată de această procedură și nu sunt extrase caractere.

istream::putback
Caracterul restaurat încearcă să mute cursorul în jos cu un caracter în flux, astfel încât ultimul caracter preluat din flux să poată fi extras din nou prin operațiuni de introducere.

Înainte de a accesa secvența de intrare, funcția construiește un obiect santinelă în interior. Apoi apelează sputbackc(c) pe obiectul său tampon de flux asociat (dacă este bun). Obiectul santinelă este în cele din urmă distrus înainte de a pleca.

istream::citește
Citiți un bloc de date:

Caracterele „n” sunt preluate din flux și apoi sunt stocate în matricea care este indicată cu „s”. Această funcție doar reproduce un bloc de date fără a inspecta conținutul datelor sau a adăuga un caracter nul la sfârșit.

În cadrul funcției, un obiect santinelă este mai întâi creat înainte de accesarea secvenței de intrare. În cele din urmă, ucide obiectul santinelă înainte de a se întoarce, extragând caractere din obiectul său tampon de flux asociat (presupunând că totul este în ordine) ca și cum ar executa una dintre metodele sale membre: sbumpc sau sgetc.

Numărul de membri apelați va returna numărul total de caractere pe care această funcție le-a citit și stocat corect.

istream::readsome
Această funcție depinde de funcționarea interioară a obiectului tampon de flux specific legat de flux, al cărui comportament este în mare măsură definit de implementare pentru clasele standard.

În cadrul funcției, un obiect santinelă este mai întâi creat înainte de accesarea secvenței de intrare. Apoi (dacă are succes), apelează funcția membru din obiectul buffer de flux pentru a determina câte caractere sunt acum disponibile înainte de a apela „sbumpc” pentru a extrage până la acel număr de caractere (sau sgetc). Obiectul santinelă este în cele din urmă distrus înainte de a pleca.

istream::seekg
Poziția în linia de intrare determină locul în care următorul caracter va fi extras din fluxul de intrare. Înainte de a citi secvența de intrare, funcția construiește intern un obiect santinelă. Apoi (dacă este OK), efectuează unul dintre cele două apeluri către obiectul tampon de flux corespunzător: pubseekpos (1) sau pubseekoff (2), (dacă există). În cele din urmă, șterge elementul santinelă și pleacă.

istream::sync
Aliniați tamponul de intrare:

Aduce în sincronizare secvența de intrare controlată a bufferului de flux conectat. Implementarea specifică a obiectului buffer de flux conectat la flux determină specificul operației.

istream::tellg
Obțineți poziția secvenței de intrare:

Oferă poziția caracterului curent în fluxul de intrare. Funcția returnează apoi -1. Dacă membrul eșuează, se întoarce adevărat.

Returnează rdbuf()->pubseekoff dacă nu (0,cur,in). Obiectul santinelă este în cele din urmă distrus înainte de a pleca.

istream::unget
Eliminați caracterul:

Încearcă să mute cursorul în jos cu un caracter în flux, astfel încât ultimul caracter preluat din flux să poată fi extras din nou prin operațiuni de introducere.

Nu e membru

operator>> (istream)
Operatorul de extracție (>>) oferă intrare formatată cu această acțiune atunci când este aplicată unui flux de intrare.

Un caracter: secvența de caractere scoate următorul caracter din ea și îl stochează ca valoare „c”. Procesul de extragere a caracterelor din is și stocarea lor în s, ca șir c, se oprește (dacă lățimea nu este zero) când este întâlnit un caracter de spațiu alb sau au fost extrase caractere (lățime ()-1).

Extragerea rvalue: permite extragerea din rvalue obiecte istream, care are același rezultat ca extragerea din lvalues: apelează is>>Val.

Exemplul 1

În acest caz, vom examina cum putem obține orice valoare de la utilizator și apoi o vom afișa ca rezultat pe ecran.

#include
folosind spatiu de nume std ;
int principal ( )
{
int Nu ;
cout << „Vă rugăm să introduceți un număr” ;
mâncând >> Nu ;
cout << „Valoarea introdusă este:” << Nu << ' \n ' ;
}

Am include fișierul antet . În continuare, vom folosi spațiul de nume „std” în spațiul de nume standard. Am numi funcția main(). O variabilă numită „nu” va fi declarată în cadrul acestei metode. Tipul de date „int” este reprezentat pentru această variabilă. Termenul „int” este abrevierea unui număr întreg. După aceea, este folosită declarația „cout”. Această comandă tipărește linia.

Utilizatorul va introduce orice valoare aleatorie după ce acest text a fost afișat pe ecran. Apoi, declarația „cin” ar fi fost utilizată. Această comandă cere utilizatorului să indice valoarea. Numărul introdus de utilizator va fi salvat într-o variabilă. Valoarea furnizată de utilizator va fi afișată pe ecran folosind comanda „cout”.

Exemplul 2

În acest caz, vom vedea cum obținem orice nume de la utilizator și apoi îl arătăm pe ecran ca rezultat.

#include
folosind spatiu de nume std ;

int principal ( )

{

char Nume [ 125 ] ;
cout << 'Introdu numele tau' << endl ;


mâncând >> ws ;

mâncând . getline ( Nume, 125 ) ;

cout << Nume << endl ;

întoarcere 0 ;

}

Am încorpora fișierul antet . În continuare, vom folosi spațiul de nume standard ca „std”. Am invoca funcția main(). În cadrul acestei metode, vom declara o variabilă. Această variabilă deține tipul de date „char”. Apoi este folosită declarația „cout”. Această comandă arată textul „Introduceți numele” pe ecran. După afișarea acestui text pe ecran, utilizatorul va introduce orice nume. Apoi, am folosi declarația „cin”.

Această comandă preia valoarea de la utilizator. Numele furnizat va fi stocat într-o variabilă „ws”. Aici, încă o dată, am folosi comanda „cin”. În cadrul acestei comenzi, se aplică funcția getline(). Această funcție conține parametrul care include numele introdus de utilizator și lungimea numelui. Comanda „cout” va fi folosită pentru a afișa numele furnizat de utilizator. Pentru a termina codul, va fi folosită comanda „return 0”.

Concluzie

În primul rând, am vorbit despre ce sunt funcțiile C++ istream. Apoi observăm câteva funcții și definiții importante menționate. În acest articol, am rulat diferite coduri care conțin o varietate de funcții istream. În primul cod, luăm orice număr de la utilizator și afișăm acel număr pe ecran. În al doilea, utilizatorul a introdus numele și a tipărit acel nume pe ecran.