Sunteți pe pagina 1din 16

Operaii de citire i

scriere
n C++ operaiile de intrare-ieire se
realizeaz prin fluxuri de date.
Prin flux de date (stream) se nelege
traseul datelor de la surs la destinaie.
sursa flux de date
destinaia
tastatura
ecranul monitorului
fiier pe disc fiier pe disc
variabil de memorie variabil de memorie

Fluxul de date este format din secvene de


caractere organizate pe linii (separate prin
codurile ASCII generate la apsarea tastei
Enter) care intr i ies din program.
Prin fluxuri de date echipamentele de
intrare-ieire sunt conectate la programul
C++.
Exist dou fluxiri de date standard:
- flux de date de intrare (cin)
- flux de date de ieire (cout)

Fluxul de date de intrare conecteaz


tastatura la program, asigurnd operaiile de
citire care furnizeaz programului datele de
intrare.
Fluxul datelor este ntre tastatur (sursa) i
variabila de memorie (destinaia).
Fluxul de date de ieire conecteaz
monitorul la program, asigurnd operaiile de
scriere prin care programul furnizeaz datele
de ieire.
Fluxul datelor este ntre variabila de
memorie (sursa) i ecranul monitorului
(destinaia).

Pentru operaiile de citire i scriere se


folosesc instruciunile expresie, prin care se
creeaz fluxurile de date, cu ajutorul
operatorilor >>, respectiv <<.
Pentru citire: cin>>
- se creeaz fluxul de date ntre tastatur i
variabila de memorie (cin reprezint
tastatura, iar operatorul de intrare >>
nseamn transmiterea unei valori de la
tastatur).

Pentru scriere: cout<<


- se creeaz fluxul de date ntre
variabila de memorie i ecran (cout
reprezint monitorul, iar operatorul de
ieire << nseamn transmiterea unei
valori ctre monitor).
Rolul operatorilor >> i << este de a
apela funcii de sistem (funcia apelat
este determinat de tipul variabilei de
memorie) care convertesc:

la intrare: o secven de iruri de


caractere ntr-un tip de dat;
la ieire: un tip de dat ntr-o secven
de iruri de caractere.

Sintaxa expresiei care creeaz un flux


de date pentru citirea de la tastatur:
- pentru citirea valorii unei singure
variabile:
cin>>nume_variabil_memorie;
Exemplu:
int a,b,c;
float x,y;
cin>>a;
cin>>b;
cin>>c;
cin>>x; cin>>y;

- pentru citirea valorilor a n variabile


de memorie, identificate prin numele
lor:
cin>>nume_1>>nume_2>>
>>nume_n;
Exemplu: int a,b,c;
float x,y;
cin>>a>>b>>c;
cin>>x>>y;

Observaii:
- introducerea valorii unei variabile
de memorie se termin prin apsarea
tastei Enter;
- dac pentru o variabil de memorie
din list nu se introduce de la tastatur
o valoare corespunztoare tipului ei,
operaia de citire se blocheaz (nu se
mai citesc valorile nici pentru celelalte
variabile de memorie din list) i se
trece la urmtoarea instruciune din
program.

Sintaxa expresiei care creeaz un flux de


date pentru scrierea pe ecran:
- pentru afiarea valorii unei singure
expresii (expresie = variabil de memorie
sau o constant sau o succesiune de
operanzi i operatori):
cout<<expresie;
Exemplu:
int a,b;
float x;
char c;
.
cout<<a; cout<< b;
cout<<x;
cout<<c;

- pentru afiarea valorilor a n expresii:


cout<<expr_1<<expr_2<<
<<expr_n;
Exemplu: int a,b,c;
float x,y;
char c;
.
cout<<a<<b<<c;
cout<<x<<y<<c;

Observaii:
- valorile precizate n list se afieaz
unele dup altele, fr spaiu ntre ele;
Exemplu: int a=10, b=20;
cout<<a<<b;
se va afia: 1020
- valorile se scriu pe acelai rnd,
separate prin spaii, folosind o constant
de tip ir de caractere pentru afiarea
spaiilor
Exemplu: cout<<a<< <<b;
se va afia: 10 20

- valorile se scriu pe rnduri diferite, pentru


separarea lor folosindu-se constanta endl, care
este o constant predefinit i corespunde
apsrii tastei Enter;
Exemplu: cout<<a<<endl<<b;
se va afia: 10
20
- dac se afieaz o constant de tip ir de
caractere care vrem s conin i caracterul
ghilimele care este folosit ca delimitator, vom
folosi secvena escape (\) pentru acest
caracter;
Exemplu: cout<<Raspunsul este \Da\
pe ecran se va afia: Raspunsul este Da

Limbajul C++ folosete multe funcii de


sistem i constante simbolice de sistem.
Pentru a le putea folosi compilatorul trebuie
s cunoasc anumite informaii despre
acestea: numele funciei, numrul i tipul
parametrilor folosii pentru apel i tipul
rezultatului furnizat. Aceste informaii
formeaz prototipul funciei. Prototipurile
funciilor de sistem se gsesc n fiiere
antet (header) care au extensia .h. Pentru a
putea fi folosite de compilator, informaiile
despre funcii i constantele simbolice de
sistem apelate trebuie incluse n fiierul
surs nainte de a ncepe compilarea lui.

Aceast operaie se face scriind n fiierul


surs, nainte de funcia main(), directiva
pentru preprocesare:
#include <nume_fiier_antet.h>
Prin
directiva
#include<nume_fiier_antet.h> n fiierul
surs va fi inclus fiierul antet ce conine
prototipuri ale funciilor de sistem. Dac
funciile apelate n program au prototipul
n fiiere antet diferite, va trebui incluse
mai multe fiiere antet n fiierul surs,
folosind cte o directiv #include pentru
fiecare fiier antet.

Prototipurile funciilor apelate n fluxurile


de citire cin>> i de scriere cout>> i
constanta endl se gsesc n fiierul antet
iostream.h.
Orice program n care se creeaz aceste
fluxuri de date trebuie s conin directiva:
#include<iostream.h>
Exemplu: #include<iostream.h>
void main()
{int a=1, b;
cout<<b=; cin>>b;
cout<<a<< <<b;
cout<<endl<<a<<endl<<b<<endl;}

S-ar putea să vă placă și