Ce sunt fluxurile în C ++?
C ++ oferă utilizatorilor un număr de biblioteci pe care le pot folosi pentru a efectua sarcini de intrare / ieșire. Aceste sarcini sunt realizate sub formă de secvențe de octeți, denumite în mod popular fluxuri.
Fluxurile sunt împărțite în două:
Tipuri de fluxuri
- Flux de intrare: Acesta este un tip de flux în care octeții curg de la un dispozitiv, cum ar fi o tastatură, către memoria principală.
- Flux de ieșire: Acesta este un tip de flux în care octeții curg în direcția opusă, adică din memoria principală apoi către dispozitiv, cum ar fi ecranul de afișare.
În acest tutorial C ++ veți învăța:
- Ce sunt fluxurile în C ++?
- Cum funcționează fluxurile?
- Tabel de funcții
- Fișiere antet C ++ pentru intrare / ieșire
- std :: cout
- std :: cin
- std :: cerr
- std :: înfunda
- Eroare de manipulare cu fluxuri IO:
Cum funcționează fluxurile?
Fluxurile C ++ funcționează după cum urmează:
- În primul rând, un flux este inițializat cu tipul potrivit.
- Apoi, ar trebui să specificați unde va apărea I / O folosind indicatori get / put.
- După ce ați ajuns la locația corectă într-un flux, puteți efectua sarcini de intrare și ieșire folosind >> și respectiv operatorii <<.
Tabel de funcții
Următoarele sunt funcțiile furnizate în fișierul antet stream.h:
Clasă | Funcții |
Filebuf | Setează tampoane de fișiere pentru citire / scriere. Are funcții close () și open () în ea |
fstreambase | Este clasa de bază pentru clasele ifstream, fstream și ofstream. Operațiunile sale sunt comune fluxurilor de fișiere. |
ifstream | Este o clasă de flux de fișiere de intrare pentru furnizarea operațiilor de intrare. |
ofstream | Este o clasă de flux de fișiere de ieșire pentru furnizarea operațiilor de ieșire. |
fstream | Este o clasă de flux de intrare / ieșire. Suportă operații simultane de intrare / ieșire. |
Fișiere antet C ++ pentru intrare / ieșire
C ++ oferă trei biblioteci care vin cu funcții pentru efectuarea sarcinilor de intrare / ieșire de bază. Ei includ:
- Iostream: este un acronim pentru fluxul standard de intrare / ieșire. Acest fișier antet vine cu definiții pentru obiecte precum cin / cout / cerr.
- Iomanip: Este un acronim pentru manipulatoare de intrare / ieșire. Biblioteca vine cu funcții care pot fi utilizate pentru manipularea fluxurilor. Conține definiții pentru obiecte precum setw, setprecision și altele.
- Fstream: Acesta este un fișier antet pentru descrierea fluxului de fișiere. Manevrează datele care sunt citite din fișier ca intrare sau care sunt scrise într-un fișier, ieșirea.
Cuvintele cheie cin și cout sunt foarte populare în C ++. Acestea sunt utilizate pentru preluarea de intrări și, respectiv, pentru imprimarea de ieșiri. Pentru a le utiliza, trebuie să includeți fișierul antet iostream în programul dvs. Motivul este că acestea sunt definite în acel fișier antet. Includerea fișierului antet iostream va genera o eroare. Acest lucru rezultă din eșecul compilatorului C ++ de a înțelege semnificația cuvintelor cheie.
Principalele obiecte definite în fișierul antet iostream sunt cin, cout, cerr și clog. Să le discutăm.
std :: cout
Obiectul cout este o instanță a clasei iostream. Este utilizat pentru producerea de ieșiri pe un dispozitiv de ieșire standard, care este în mod normal ecranul. Este utilizat împreună cu operatorul de inserare a fluxului (<<).
Exemplu:
#includeusing namespace std;int main() {char welcome[] = "Welcome to Guru99";cout << welcome << endl;return 0;}
Ieșire:
Iată o captură de ecran a codului:
Explicatie cod:
- Includeți fișierul antet iostream unde este definit obiectul cout.
- Includeți spațiul de nume std, astfel încât să nu fie necesar să-l apelăm atunci când utilizăm clasele sale.
- Apelați funcția main (). Codul programului trebuie adăugat în corpul său. Deschiderea cretată {marchează începutul corpului său.
- Creați o variabilă de caractere numită Welcome pentru a ține șirul Welcome to Guru99.
- Imprimați valoarea de întâmpinare a șirului pe consolă. Endl este un cuvânt cheie C ++ care înseamnă linie finală. Mută cursorul pentru a începe tipărirea textului pe următoarea linie.
- Programul trebuie să returneze valoare la executarea cu succes.
- Sfârșitul corpului funcției main ().
std :: cin
Obiectul cin este o instanță a clasei istream. Citește intrarea de pe dispozitivul de intrare, tastatura. În mod normal, este utilizat împreună cu operatorul de extracție (>>). Obiectul de extracție este responsabil pentru extragerea datelor introduse prin tastatură de pe obiectul cin.
Exemplu:
Următorul exemplu demonstrează cum se folosește cuvântul cheie cin în C ++:
#includeusing namespace std;int main(){int number;cout << "Enter a number:";cin >> number;cout << "\nYou entered: " << number;return 0;}
Ieșire:
Iată o captură de ecran a codului:
Explicatie cod:
- Includeți fișierul antet iostream în programul nostru. Obiectul cin este definit în acest fișier antet.
- Includeți spațiul de nume std pentru a utiliza clasele sale. Nu va trebui să apelați std atunci când utilizați clasele sale.
- Apelați funcția main (). Codul programului trebuie adăugat în corpul său.
- Începutul corpului programului.
- Declarați o variabilă întreagă numită număr.
- Imprimați un mesaj pe ecran prin care solicitați utilizatorului să introducă un număr.
- Citiți valoarea introdusă de utilizator pe consolă de la tastatură.
- Imprimați valoarea citită mai sus pe consolă alături de alt text.
- Programul ar trebui să returneze o valoare dacă se execută cu succes.
- Sfârșitul corpului funcției principale.
std :: cerr
Obiectul cerr formează fluxul de erori standard pentru ieșirea erorilor în C ++. Cerr este un exemplu al clasei ostream. Obiectul cerr nu este tamponat. Aceasta înseamnă că este utilizat atunci când un mesaj de eroare trebuie să fie afișat imediat.
Deoarece nu este tamponat, nu stochează mesajul de eroare pentru un afișaj ulterior. Este utilizat împreună cu operatorul de inserare a fluxului (<<).
Exemplu:
#includeusing namespace std;int main() {cerr << "An Error occurred!";return 0;}
Ieșire:
Iată o captură de ecran a codului:
Explicatie cod:
- Includeți fișierul antet iostream unde a fost definit obiectul cerr.
- Includeți spațiul de nume std, astfel încât să nu fie necesar să-l apelăm atunci când utilizăm clasele sale.
- Apelați funcția main (). Logica programului ar trebui adăugată în corpul său. Deschiderea cretată marchează începutul corpului funcției.
- Utilizați obiectul cerr pentru a imprima o eroare pe consolă.
- Programul trebuie să returneze o valoare după executarea cu succes.
- Sfârșitul corpului funcției principale.
std :: înfunda
Obiectul clog este o instanță a clasei ostream. Este folosit pentru a afișa erori pe afișajul standard, pe monitor. Este similar cu obiectul cerr, dar este tamponat. Deoarece este memorat în memorie, acesta stochează mesajul de eroare în memoria tampon până când memoria tampon este umplută / spălată. Este utilizat împreună cu operatorul de inserare a fluxului (<<).
Exemplu:
#includeusing namespace std;int main() {clog << "An Error occurred!";return 0;}
Ieșire:
Iată o captură de ecran a codului:
Explicatie cod:
- Inclusiv fișierul de antet iostream în care este definit obiectul clog.
- Inclusiv spațiul de nume std, astfel încât să putem folosi clasele sale fără a-l apela.
- Apelarea funcției main (). Logica programului ar trebui adăugată în corpul său. {Marchează începutul corpului funcției.
- Utilizați obiectul clog pentru a imprima o eroare pe ieșirea standard, monitorul.
- Programul trebuie să returneze o valoare după finalizarea cu succes.
- Sfârșitul corpului funcției main ().
Eroare de manipulare cu fluxuri IO:
Pentru a verifica dacă un flux este valid sau nu, îl puteți folosi ca boolean.
Iată un exemplu:
ifstream file( "myfile.txt" );if ( ! file ){cout << "File NOT opened!" << endl;}
Pentru a obține mai multe detalii despre starea fluxului, puteți utiliza aceste funcții:
- good () - va reveni adevărat dacă totul este în regulă.
- bad () - va reveni adevărat dacă apare o eroare fatală.
- fail () - va reveni adevărat după operația de flux nereușită.
- eof () - va reveni adevărat dacă ajunge la sfârșitul unui fișier.
Pentru a afla dacă o anumită operație de citire / scriere a eșuat, testați rezultatul citirii.
De exemplu, pentru a verifica dacă utilizatorul a introdus un număr întreg valid, faceți acest lucru:
int p;if ( cin >> p ){cout << "Enter valid number" << endl;}
rezumat
- Sarcinile de intrare și ieșire în C ++ sunt realizate prin secvența de octeți. Octetii se numesc fluxuri.
- Într-un flux de intrare, octeții curg de la dispozitivul de intrare ca o tastatură în memoria principală.
- Într-un flux de ieșire, octeții din memoria principală, apoi către un dispozitiv de ieșire, cum ar fi un monitor.
- Obiectul cin este o instanță a clasei istream. Citește intrarea de pe un dispozitiv de intrare precum tastatura.
- Obiectul cout este o instanță a clasei ostream. Produce ieșire pe dispozitive de ieșire precum monitorul.
- Obiectul cerr este o instanță a clasei ostream. Afișează obiecte de eroare pe monitor.
- Obiectul clog este o instanță a clasei ostream. Afișează mesaje de eroare pe dispozitivele de ieșire.
- Obiectul înfundat tamponează mesajele de eroare, în timp ce obiectul cerr nu.