Operații de intrare și ieșire în C și C++

Curs
10/10 (5 voturi)
Domeniu: Calculatoare
Conține 1 fișier: doc
Pagini : 6 în total
Cuvinte : 2482
Mărime: 20.24KB (arhivat)
Publicat de: Theodor Marginean
Puncte necesare: 0

Extras din curs

Operatii de intrare / iesire în C++ .

Ca si în C, în C++ facilitatile de intrare / iesire sunt implementate prin intermediul unei biblioteci de functii.

Pe nivelul cel mai de jos, un fisier este interpretat ca un flux de octeti (stream).

Pe nivelul utilizator, fisierul consta dintr-o secventa de tipuri amestecate de date: caractere, valori aritmetice, obiecte.

Biblioteca de functii de intrare / iesire realizeaza interfata între cele doua niveluri.

În biblioteca este predefinit un set de operatii pentru citirea si scrierea unor tipuri predefinite.

Aceste operatii pot fi extinse de catre programator pentru tipurile de date definite de catre utilizator (clase).

Operatiile de intrare sunt suportate de clasa istream, cele de iesire – de clasa ostream.

Scrierea în fluxul de iesire (insertie) se realizeaza cu operatorul << ( << x – preia date din x).

Citirea din fluxul de intrare (extractie) se realizeaza cu operatorul >> ( >>x – pune date in x).

Sunt predefinite 4 fluxuri de date: cin – obiect din clasa istream, legat de intrarea standard, cout – obiect din clasa ostream, legat de iesirea standard, cerr – obiect din clasa ostream legat de iesirea standard de eroare nebuferata si clog – legat de iesirea standard de eroare buferata.

Intrarile / iesirile standard folosesc obiectele cin, cout si cerr, initializate prin includerea fisierului antet iostream.h.

1. Iesirea standard.

Se realizeaza folosind operatorul de inserare << (depune în flux). Acest operator este predefinit pentru tipurile: caracter, întregi, reali, siruri de caractere, pointeri. Operatorul poate fi supraîncarcat pentru tipurile utilizator (tipuri abstracte). Exemple:

#include <iostream.h>

int n=10;

cout << n << “n”; // acelasi efect are printf(“%dn”, n);

char c=’A’;

cout << c << “n”; // similar cu printf(“%cn”, c);

Pentru realizarea unor facilitati de formatare, în C++ seutilizeaza indicatori de format (flaguri), care contin într-o data membru al clasei ios bitii cu semnificatiile urmatoare:

enum {

skipws =0x0001, // salt peste spatii albe

left =0x0002, // alinierea iesirii la stinga

right =0x0004, // alinierea iesirii la dreapta

internal =0x0008,

dec =0x0010, // conversie in zecimal

oct =0x0020, // conversie in octal

hex =0x0040, // conversie in hexazecimal,

showbase =0x0080, // se afiseaza baza

showpoint =0x0100, // se afiseaza punctul zecimal

uppercase =0x0200, // se afiseaza cu litere mari

showpos =0x0400, // intregii pozitivi sunt afisati cu +

scientific=0x0800, // realii se afiseaza cu exponent

fixed =0x1000, // realii se afiseaza fara exponent

unitbuf =0x2000, // se goleste zona tampon pentru iesiri

stdio =0x4000, // dupa fiecare iesire se videaza stdout

};

În absenta indicatiilor de formatare, se face o formatare implicita, în baza 10, cu aliniere la dreapta în câmpul de iesire.

Pentru a realiza o formatare definita de utilizator, diferita de cea implicita, se pot seta bitii membrului indicator cu functiile:

long setf(long f); // seteaza indicatorii, intoarce vechiul format

long setf(long b, long g);//seteaza bitul specificat din grupa

Bitii indicatorului de format se împart în 3 grupe:

1) aliniere (adjustfield) cu bitii right, left si internal

2) baza (basefield) cu bitii dec, oct, hex

3) exponent (floatfield) cu bitii scientific si fixed.

Într-o grupa poate fi setat un singur indicator.

int width(); // returneaza latimea zonei de afisare

int width(int w); // modifica la w, latimea zonei de afisare

Implicit, latimea minima a zonei de afisare este 0; ea poate fi extinsa automat pentru a permite afisarea datei cu toate cifrele.

Daca numarul de caractere al datei este mai mic decât latimea minima a zonei de afisare, se face aliniere la dreapta, completata la stânga cu spatii libere.

Caracterul de umplere (cu care se completeaza latimea minima a zonei de afisare poate fi definit prin:

char fill(); // intoarce codul caracterului de umplere curent

char fill(char c); //defineste un nou caracter de umplere

Numarul de zecimale cu care se afiseaza un numar real (precizia) poate fi setat cu:

int precision(); //intoarce precizia curenta

int precision(int n); // modifica precizia la n cifre,

// intoarce vechea precizie

Exemple:

int i=25;

cout.width(10);

cout.setf(ios::left,ios::adjustfield);

cout.fill(‘0’);

cout.setf(ios::showpos);

cout.setf(ios::hex,ios::basefield);

cout << i << endl;

double x=123.456;

cout.setf(ios::scientific,, ios::floatfield);

cout.precision(5);

cout << x << endl;

2. Manipulatori.

Permit definirea formatelor pentru operatiile de intrare / iesire, într-un mod mai simplu decât o fac indicatorii de format.

Exista urmatorii manipulatori:

dec – indicator de conversie zecimal

oct – indicator de conversie octal

hex – indicator de conversie hexazecimal

ws – setare salt peste spatii albe

endl – insereaza linie noua si goleste tamponul fluxului

ends – insereaza caracterul nul de terminare a unui sir de caractere

flush – goleste tamponul fluxului

setbase(int n) - seteaza baza(n = 0, 8, 10, 16)

resetiosflags(long x) – sterge bitii de format specificati

setiosflags(long x) – seteaza bitii de format specificati

setfill(int n) – seteaza caracterul de umplere

setprecision(int n) – seteaza precizia

setw(int w) – setarea latimii câmpului de afisare

Pentru a folosi manipulatori se include fisierul iomanip.h

Exemple:

int i = 12345;

cout << setw(10) << resetiosflags(ios::internal|ios::left) <<

setiosflags(ios::right) << setfill(‘0’) <<

setiosflags(ios::showpos) << i;

double x = 2.718281;

cout << resetiosflags(ios::fixed) << setiosflags(ios::scientific)

<< setprecision(10) << x;

Preview document

Operații de intrare și ieșire în C și C++ - Pagina 1
Operații de intrare și ieșire în C și C++ - Pagina 2
Operații de intrare și ieșire în C și C++ - Pagina 3
Operații de intrare și ieșire în C și C++ - Pagina 4
Operații de intrare și ieșire în C și C++ - Pagina 5
Operații de intrare și ieșire în C și C++ - Pagina 6

Conținut arhivă zip

  • Operatii de intrare si iesire in C si C++.doc

Alții au mai descărcat și

AutoCad

APERTURE - controleazã mãrimea cursorului selector, caracteristic modului object snap. ARC - traseazã un arc de cerc de orice dimensiune. A -...

Biblioteca de Șabloane Standard

Biblioteca de Sabloane Standard (STL) asigura o abstractizare standardizata a datelor prin intermediul containerelor si o abstractizare procedurala...

Clase Derivate

1. Clase derivate. Prin mostenire, atributele unei clase de baza sunt transmise unor clase derivate. Derivarea permite definirea unor clase noi,...

Clase în Java

Clase pentru miniaplicatii Miniaplicatiile constituie extensii ale unei clase deja existente java.applet.Applet. Structura clasei unui applet...

Clase

1. Programare procedurala –Programare orientata pe obiecte. Limbajul C, ca si Pascal, utilizeaza modelul programarii structurate procedurale, care...

Comunicații internet

2.1. Stilurile caracterelor {n sfirsit pagina dvs. contine ceva, chiar daca este vorba numai de un nume. Vom analiza in continuare elementele de...

Crearea unei aplicații independente în Java

Toate aplicatiile Java contin o metoda main(), spre deosebire de miniaplicatii. class FirstApp { public static void main( String argsst) {...

Curs Excel

Deplasarea prin foi Deplasarea dintr-o foaie in alta se face cu clic cu mouse-ul pe eticheta foii dorite. Deplasarea prin celule Va puteti...

Te-ar putea interesa și

Practică la Contabilitate Financiară

1. Prezentarea unitatii patrimoniale, cadrul legislativ, particularitatile activitatii si ale structurii organizatorice, organigrama unitatii 1.1....

Contabilitatea Ambalajelor

INTRODUCERE Indiferent de gradul de dezvoltare economica a unei tari, marfurile produse si comercializate sunt de neconceput fara ambalaj. In...

Evaluarea și Contabilitatea Activelor Circulante de Natura Stocurilor

INTRODUCERE O bună cunoaştere a situaţiei patrimoniului este strict necesară pentru a participa cu succes la viaţa economică şi chiar socială a...

Practică contabilitate financiară

Societatea comerciala “ALFA” SA a fost infiintata prin Hotararea Guvernamentala nr.1224 din 1991. Sediul societatii este in In toate...

Contabilitatea Materiilor Prime

1. PREZENTAREA GENERALA A S.C. COMAT S.A. DEVA 1.1. SCURT ISTORIC Societatea Comerciala COMAT DEVA S.A. este persoana juridica româna, cu sediul...

Auditul de prevenire al poluării pentru producerea produselor de curățenie SC Detergenți SA Procter and Gamble Timișoara

1. Prezentarea studiului de caz 1.1. Descrierea generală a profilului unității Societatea Procter & Gamble a fost fondată în anul 1837 de către...

Studiul privind stocurile de produse rezultate din producție proprie

Capitolul 1 Prezentarea generala a unitatii S.C. Mecanica S.A. 1.1. Scurt istoric Evolutia intreprinderii de la infiintarea sa pana la...

Analiza sistemelor informaționale într-o firmă

1.1. Definirea misiunii, obiectivelor si strategiei organizationale la Regia Autonoma Judeteana de Apa-Canal Iasi. 1.1.1. Misiunea Furnizarea...

Ai nevoie de altceva?