Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Streamuri

c



+ Font mai mare | - Font mai mic



Streamuri

In sectiunea 15.1 am prezentat niste cunostinte de baza referitoare la ierarhiile de clase existente in C++ pentru realizarea operatiilor de intrare/iesire. Am vazut ca nu exista instructiuni de intrare/iesire in limbajul C, si nici in C++. In schimb in limbajul C s-au definit functii standard de biblioteca, iar in C++ ierarhii de clase pentru operatii de intrare/iesire. In continuare ne vom ocupa de cele doua ierarhii de clase definite in C++ in vederea efectuarii operatiilor de intrare/iesire.




Operatiile de intrare/iesire sunt realizate de catre cele doua ierarhii de clase cu ajutorul notiunii de stream. Printr-un stream vom intelege un flux de date de la multimea datelor sursa (tastatura, fisier sau zona de memorie) la multimea datelor destinatie (monitor, fisier sau zona de memorie). Cele doua ierarhii de clase sunt declarate in fisierul iostream.h, deci acest fisier va trebui inclus de fiecare data, cand se lucreaza cu ierarhiile de clase pentru intrare/iesire. Prima ierarhie de clase este:

Figura 4. Ierarhia de clase cu radacina in streambuf


Clasa streambuf se poate folosi pentru gestionarea zonelor tampon si pentru operatii de intrare/iesire simple. A doua ierarhie de clase este mai complicata. Prezentam in continuare o parte a ei.

Figura 5. Ierarhia de clase cu radacina in ios

Legatura dintre cele doua ierarhii de clase s-a realizat printr-o data membru a clasei ios, care este un pointer catre clasa streambuf. Clasa ios este clasa de baza virtuala atat pentru clasa istream, cat si pentru ostream. Astfel elementele definite in clasa ios vor fi prezente numai intr-un singur exemplar in clasa iostream.

Clasa istream realizeaza o conversie din caracterele unui obiect de tip streambuf, conform unui format specificat. Folosind clasa ostream se poate efectua o conversie conform unui format specificat, in caractere memorate intr‑un obiect de tip streambuf, iar clasa iostream permite conversii in ambele directii.

Clasele istream_withassign, ostream_withassign si iostream_withassign sunt clase derivate, avand clasele de baza istream, ostream respectiv iostream. In plus operatorul de atribuire (=) este supraincarcat in doua moduri, de aceste clase.

Clasele derivate din clasa istream sau ostream se vor numi clase stream, iar obiectele claselor derivate din clasa ios se vor numi streamuri. Exista urmatoarele patru streamuri standard definite in fisierul iostream.h:

Stream

Obiect al clasei

Corespunde fisierului standard



cin

istream_withassign

stdin

cout

ostream_withassign

stdout

cerr

ostream_withassign

stderr (fara zone tampon)

clog

ostream_withassign

stderr (cu zone tampon)

Tabelul 3. Streamuri standard

In continuare ne vom ocupa de folosirea streamurilor standard, pentru realizarea operatiilor de intrare/iesire conform unui format specificat.





Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 768
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved