CATEGORII DOCUMENTE |
Functia printf realizeaza iesiri cu format la iesirea standard stdout, deci afisare la terminalul la care care s-a lansat programul. Functia printf se apeleaza printr-o instructiune cu formatul:
int printf (control, lista_expresii);
unde control este un sir de caractere care contine:
texte de scris;
specificatori de format pentru datele care se scriu din lista_expresii.
lista_expresii contine expresii; valoarea fiecarei expresii se scrie conform unui specificator de format corespondent din parametrul control.
Parametrul control este inclus intre ghilimele, iar numarul specificatorilor de format coincide cu numarul expresiilor din lista_expresii. Daca dorim sa scriem numai un text atunci parametrul de control nu contine nici un specificator de format iar lista_expresii este vida (practic este absenta).
Un specificator de format are formatul BNF urmator:
%[-][d..d][.d..d][l1]l2
Dupa cum se observa un specificator de format incepe intotdeauna cu caracterul procent ("%"). Dupa acest caracter poate urma una din constructiile urmatoare:
- un caracter "-" optional; prezenta acestui caracter indica cadrarea la stanga a datei in campul in care se scrie (implicit data se scrie cadrata la dreapta);
-un sir de cifre zecimale optional, care defineste lungimea minima a campului in care se scrie data corespunzatoare din lista_expresii; data se scrie astfel:
in cazul in care necesita o lungime mai mica se scrie cadrata la dreapta sau stanga (in functie de absenta sau prezenta semnului "-")
in cazul in care necesita o lungime mai mare se va scrie pe atatea pozitii cate ii sunt necesare;
-un punct urmat de un sir de cifre zecimale (dupa cum se observa optional); acest element indica precizia datei care se scrie:
daca data se scrie in virgula flotanta, precizia defineste numarul de cifre aflate dupa marca zecimala (deci cate zecimale);
daca data este un sir de caractere atunci indica cate caractere se scriu.
-una sau doua litere, care definesc tipul de conversie din formatul intern in formatul extern:
prima litera poate fi "l", ceea ce semnifica conversia din formatul intern long in formatul extern definit de specificator;
a doua litera este obligatorie intotdeauna si are semnificatiile de mai jos:
litera tipul
de conversie realizat
d - din int intern in zecimal extern
o - din int intern in octal extern
x - din int intern in hexazecimal extern (litere mici pentru cifrele mai mari ca 9 deci a,b,c,d,e,f,)
X - din int intern in hexazecimal extern (litere mici pentru cifrele mai mari ca 9 deci A,B,C,D,E,F)
u - din unsigned intern in zecimal extern fara semn
c - din binar intern (cod ASCII) in caracterul corespunzator
s - din sir de coduri ASCII intr-un sir de caractere (atentie
ultimul cod este NUL (adica '0')
f - din float sau double intern in dd.dd (implicit 6 cifre
zecimale la partea fractionara daca nu e prezenta precizia)
e - din float sau double intern in d.ddeddd (implicit 6
cifre zecimale la partea fractionara daca nu e prezenta
precizia)
E - din float sau double intern in d.ddEddd (implicit 6
cifre zecimale la partea fractionara daca nu e prezenta
precizia)
g - se aplica una din conversiile definite de literele f si e
alegandu-se aceea care are un numar minim de pozitii
G - se aplica una din conversiile definite de literele f si E
alegandu-se aceea care are un numar minim de pozitii
Literele d, o, x, u pot fi precedate de litera l conversia realizandu-se din formatul intern long in loc de int.
Observatie.
1o. Daca caracterul % nu este urmat de una din constructiile de mai sus atunci nu reprezinta un specificator de format.
Functia printf intoarce lungimea totala in octeti a datelor scrise la terminal sau valoarea simbolica EOF in caz de eroare. Precizam ca EOF este definita in fisierul header stdio.h astfel:
#define EOF -1.
Totodata functia printf poate fi testata si astfel:
EOF = = printf (control, lista_expresii)
Daca are valoarea adevarat atunci la scrierea datelor s-a produs o eroare.
Exemple:
#include<stdio.h>
#include<math.h>
void main(void)
Rezultatele executiei programului sunt:
i*j = 110
i*j = 110
i*j = 110
i*j = 00110
i*j = 00110
a*b = 1.6
A*B = 2.10000
radical(a*b) = 1.249000
radical(A*B) = 1.4491376746
radical(A*B) = 1.44913767461894372
radical(A*B) = 1.4491376746189437200
#define sir "PC WORLD"
void main (void)
Rezultatele executiei programului sunt:
* PC WORLD*
*PC WORLD *
PC WO*
*PC WO *
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 930
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved