Sunteți pe pagina 1din 13

SINTAXA PENTRU FAMILIILE

DE FUNCTII printf SI scanf

Referat efectuat de catre Agheorghiesei


Madalina, din grupa 3115a, specializarea
Calculatoare
Printf
Functia printf este utilizata pentru a afisa pe terminal o expresie sub forma de sir
de caractere. Atunci cand in expresie se contine alt tip de format, este necesar ca
acesta sa fie specificat prin specificatorul de format “%” urmat de specificatorul
respectiv, astfel incat sa se poata produce conversia.

Prototipul functiei printf(): printf( const char * format, …)

si format: %[indicatori][lățimea][.precizie][lungime]specificator

Specificatori:
1. d sau i
reprezinta numere intregi in zecimal cu semn
Exemplu:

Output: 123 456

2. u
reprezinta numere intregi in zecimal fara semn
Exemplu:

Output: 37485
3. o
Reprezinta numere intregi in octal fara semn
Exemplu:

Output: 1375

4. x, X
Reprezinta numere intregi fara semn in hexazecimal
Exemplu:

Output: 7b 7B

5. f, F
Reprezinta numere reale in zecimal
Exemplu:

Output: 123.456000

6. e, E
Reprezinta numere reale in notatie stiintifica (mantisa, exponent)
Exemplu:
Output: 1.235000e+002 1.235000E+002

7. g, G
Afiseaza un numar minim de cifre a numerelor reale reprezentate cu %e,
%E, %f și %F
Exemplu:

Output: 123.543

8. a, A
Reprezinta numere in hexazecimal in virgula mobila

Output: 0x0.000150p-1022 0x0.000360p-1022

9. c
Reprezinta caractere
Exemplu:
Output: G

10. s
Reprezinta siruri de caractere
Exemplu:

Output: Sir de caractere

11. p
Reprezinta o adresa memorata in pointer
Exemplu:

Output: 0060FF08

12. n
Nu va afisa nimic pe ecran
Exemplu:
Output:

13. %
“%” urmarit de un alt “%” va afisa pe ecran un singur %
Exemplu:

Output: %

14.lf, le
Reprezinta tipul double (numere mai mari fata de float)
Exemplu:

Output: 29.456000 1.239870e+002

15. Lf, Le
Reprezinta tipul long double (numere mai mari fata de double)
Acelasi exemplu ca la punctul 14.
Indicatori de formatare:
1. –
Se plaseaza inaintea campului de latime, afisand rezultatul la stanga in
dependenta de acesta.
Exemplu:

Output: x= 789
x=789

2. +
Acesta va afisa rezultatul cu semnul “+” daca este pozitiv si “–“ daca este
negativ. Implicit se afiseaza astfel doar pentru numerele negative.
Exemplu:

Output: x=+123
x=-123

3. (Spatiul)
Spatiul se plaseaza inaintea specificatorului si are efect doar asupra
numerelor pozitive, lasand un spatiu inaintea rezultatului la iesire.
Exemplu:
Output: x= 123
x=-123

4. #
Acesta se plaseaza inaintea specificatorilor o, x, X ca sa afiseze la iesire
rezultatul precedat de 0, 0x si respectiv 0X. Pentru specificatorii a, A, e, E, f,
F, g, G, “#” are functia de a afisa rezultatul cu virgula indiferent daca
numarul este zecimal sau intreg.
Exemplu:

Output:
5. 0 (zero)
Acesta se plaseaza inaintea [lățimei] ca sa afiseze rezultatul cu “0” pe
spatiile goale.
Exemplu:

Output: x=000033

[lățimea]
In acest subspecificator se specifica pana la cate spatii de la stanga sa se
afiseze numarul.
Exemplu:

Output: x= 789
x=789

[.precizie]
In acest subspecificator se specifica numarul de cifre zecimale care sa fie
afisate dupa virgula.
Exemplu:
Output: x=33.123

[lungime]
Acest subspecificator determina marimea tipului de data la iesire. In
urmatorul tabel sunt aratate tipurile folosite implicit sau dupa selectie in
dependenta de specificator:
specificatori

lungime di UoxX fFeEgGaA c s p n

nespecificat int Int fara semn double int char void int

hh Char cu semn Char fara semn Char cu semn

h Short int Short int fara semn Short int

l Long int Long int fara semn wint_t wchar_t Long int

ll long long int Long long int fara Long long int
semn
j Intmax_t Uintmax_t Intmax_t

z Size_T Size_t Size_t

t Ptrdiff_t Prtdiff_t Ptrdiff_t

L long double
... (Argumentele aditionale)
Argumentele se atribuie in dependenta de aceluaiasi format ca si specificatorul
scris dupa “%”, astfel incat sa poata fi inlocuite si convertite in sirul de caracteri la
iesire. Numarul de “%” cere acelasi numar de argumente consecutive. Daca cele
din urma is mai putine nu se va afisa nimic in locul ultimelor “%”, iar daca is mai
multe functia va ignora cele in plus.

Secvente de evitare
Secventele de evitare sunt niste caractere precedate de “\” care se plaseaza
in interiorul sirului de caractere si au functia de a produce diferite efecte la
iesire.
 “\n” (alarma) suna alarma
 “\b”(BS) backspace, se va sterge caracterul ce-l precede
 “\f” (FF) form feed, se trece la urmatoarea “pagina” (secventa)
 “\n”(LF) line feed, se trece la urmatoarea linie pe prima pozitie
 “\r” (CR) carriage return, cursorul se va plasa pe linia curenta pe
prima pozitie
 “\t” (TAB) tab orizontal
 “\v” (VT) tab vertical
 “\\” (\) backslash
 “\’” (‘) apostrof
 “\”” (“) ghilimele
 “\?” (?) semnul intrebarii
 “\o” (caracter) caractere in notatie octala
 “\xH” (caracter) caractere in notatie hexazecimala
Exemplu:

Scanf
Functia scanf() este folosita pentru a prelua o valoare introdusa pe consola
si de a o atribui unei variabile. Semnul “%” specifica formatul in care se va
converti valoarea introdusa, iar variabila selectata trebuie sa corespunda cu
tipul de date folosit.

Prototipul functiei scanf(): int scanf(const char * format, …)


Unde format: %[*][lățime][lungime]specificator
Formatul corespunde in intregime ca cel descris la functia printf() .

Scanf() se diferentiaza de printf() prin modul de a atribui argumentele:


la scanf() acestea trebuie sa fie precedate de “&” astfel incat valoarea
introdusa sa fie atasata variabilei.
Precum la printf(), numarul de “%” trebuie sa corespunda cu numarul de
&argumente.
Exemplu:

Bibliografie:

https://en.wikipedia.org/wiki/Scanf_format_string

https://en.wikipedia.org/wiki/Printf_format_string

http://apollo.eed.usv.ro/~remus/arhive/PCLP_I/cursuri/Curs_3.pdf

http://www.cplusplus.com/reference/cstdio/printf/

http://apollo.eed.usv.ro/~biliusl/pclp1/lab2.pdf

https://ocw.cs.pub.ro/courses/programare/laboratoare/lab08

https://ro.wikipedia.org/wiki/Printf

https://www.tutorialspoint.com/c_standard_library/c_function_scanf.htm

http://www.cplusplus.com/reference/cstdio/scanf/

https://fresh2refresh.com/c-programming/c-printf-and-scanf/

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