52. Arpieuinea cHiLimeLeLon $i
Wal
AALTOR CARACTERE
ind luca variable de tip char sau cu sn de caractere, pot spitea statin cave webuie St
_urbull nei vatabie valourea de glimele sau de aposrof, De exempi, cn sae famsas C+
Programmer’ Bible, webuie i oli de dou’ ei aposwofl in sl de cascore, in asemenca
cain rebuie si plas inainea caracerlut apost caracienl backslash (\),c2 mals
“char apoatro® = 1\''; nie :
cchas ghilinede = '\" = “ae
in afari de caracterul aposvof, putet uta in programul damneavoastra gl alte caractere
speciale, prezentate in tabelul 52. Pentru a face aceasta, plasatisimbolul caracteruluiimediat
‘dupa caracterul backslash, fn toate aceste cazuri vebule si folosiy lterele miei pentru a
reprezenta caracterul special
Carncter Semaificatie
\a Caracter ASCH de atenjionare
w Backspace
v ‘Avans hale
\w Linie nous
\ Retur de car
‘ Primete nopiunt pe C63
caracter Semaificatie
Ve “Tabulator orlzontal
w ‘Tatulator vertical
w Badkslash
V Apostof
ww Ghilimele
v Semmulintebii
wan Valoare ASCI in octal
xnnn \Valoare ASCII in hexazecimal
_lxnnn__Valoare ASGU in hexazecimal
Tabetut 52 Caracierde escape definite in C.
PREZENTAREA FUNCTIEI PRINTF
Mai multe dine sectunile acestel cisyi au folosit funcyia prinif pentru a afiga mesaje pe
feeran, Cind program. dumneavoastra foloseste print, datele pe care viet si le aligati
reptezints parameirit sau argumentele funcjel printf. Usmitoarea instruciiune foloseste
functia prinyf pentru ¢ afiga pe ecran mesajul Totul despre C/Ce*:
BHinte (onotul, despee c/cH4")
In acest caz, ginal de caractere (lterele care apar intre cele dou ghilimele) constinuie
Singurul argument al functiet pringf CAnd programul dumneavoastri incepe si lucreze cu
vatiable, poate ca vep dot si foloshi printf penteu aafisa valoarea flecicei variabile, Funcila
Dru aceepti mai malji paramete, Primul parame trebuie si ie intotdeauna un git de
Caractere. Parametti care urmeaz primulus gir de caractere pot i numere, variabile, expresil
(cade exemplu 315) sau chiar ate scusi de caractere. Atunci cand dori ca prinifsi afigeze
© valoare sau 0 varicbild, tebuie si includet informatia despre tipul variable to primul
parametru, Pe lng’ caracere, in primul parametra putetl si introduceti speificatori de
Jormat, cave aratl furctei prinifcum si afgeze cellalji paramets. Un specificator de Format
‘ste reprezentat prin semnul de procent (96) urmat de o liter’, De exemplu, pentra a afiza 0
Valoare Inireagd, vei fulusi %ad Gl specifics valorile zecimale), De asemenes, pentr’ a tipi
‘0 valoate in virguld mobili, putejlfolosi 9f Unndtoarele instuciiuni ilustreaza uitilzarea
specifcatorlor de formar in cadrul funcyel pringh
printt("varste utilizatorului este #d\n", varsta);
peinté ("Impozitul pe vanzari este d\n", pret * 0.07):
Print? ("Varsta utilizatorului: td greutate: Sd inaltime: d\n",
vareta, grestate, inaltine fs ob
Dupi cum vee, puefi sf introduce in cadrul peimulu parametr al hui prinyfunul sau mat
‘ulti specificator de format, Observal ci a weia instruciiune continua pe randul urmitor.
Chad instuciiunea dumneavoasted nu Incape pe 0 singurd line, incercai 88 gasii un }oc bun
pentru a rupe tindul (cum ar fi imediat dup virgula) sl indentayi Cragett spre interiorul
pagini) linia urmatoare. Scopul indentirli este imbundtatrea aspectulul vizval al programa-
Riidumncavoastd, astelincat cel care va citeste programul si deduca mai usor c8 respectiva
linle 0 continua pe cea de mal sus. Mai multe dintre capitolele urmatoare explici in detalit
dlferit specificatori de format al functtel pring64 Toru pespre C/C++
54 Arisanca vALORILOR DE TIP INT
FOLOSIND FUNCTIA PRINTF
Funcia prinf pemnite uilzarea unor specieatori de format care furnizeaz’ informa
despre dpusle pacamechor (cum arf nt loa, char 9 aga mal depart). Pent a aja
saree de tip tat eu pring se folosete speciiatrul de format Sed. Uratorul program,
Tout eloeqe specilcatorl de format Sd penta a aga val vasablle de tip Int
ef (PValoatea| zecinal
“valoare, veloare);
eibdeladenea! 2 eee
ae ae eee
oi SELSEEg stetats 285 este 277, ootan
Valoarea zecimala
ie imala 255 este FF in hexa;
AFISAREA vALor
Is RILOR DE TIP UNS
FOLOSIND FUNCT PRIVTE NT
‘Atunci cind compilayt si executayt programul inioutc, pe ecran se afigeazi urmaton
rezultat:
Varsta utilizatorulul: 41 greutate: 75 inaltime: 160
i plus 2 egal 3
c:\> |
Observatte: Multe compilatoare tratcazd specificatorul de format%t ca find tdentic cud.
acid vrei sd creapi un program nou, ulizats totus speciftcatont Xd, pentru ci specifica |
tonul%t este wn specificator moslentt teste posibil ca viitoarele compilatoare nu fl accept,
55 TipArinea uel VALOR INTREG! OCTALE j
SAU HEXAZECIMALE
Truncjia prin permite uilizarea unor spacificater de Format care farnizeatinformapi
espre dpurile parameuillr (cam ar fi in, float, cBar si apa mal depavte), In funcie de
propramul dumneavoastr, poate, la un moment dt, vet dri si ais o valoaretnteagh
Scud Gn baza 8) sau hexazecimala in buza 16) Caraceral % (itera 0, nu cifa 0) ee
Specifcatorl care Indl fundjel prin si aigeze valoaea in format octal, [atin mo
Sra, speciicators ox gi HX indlckfunciet prin sk aligeze valoare in format hexaze
Gal Diferenjaintre fox gi 4X este i cel din um afigeazA valoarea hexazecimall cd
tnajuscule, Unaitorul program, oct betc, usireazd utlizarea speciicatollr de format
9 9%
#042000 ca unsigned su
42000, cn ine eave
‘unei end com
raul
Afiseaza 42000 ca uw
“Miseaza 42000 ca
ps
Ln66 _Torut pespre C/C++ Pree nopum pe C_ 67
Pretul este 525.750000
Inpozitul pe vanzari este 31.544999
o>
Dupi cum puteti vedea. in mod prestabilit, specificatorul de format #fnu ofer% decit 0
formatare simpli a iesii. Mai multe secjluni din acest capitol vor prezenta insi diferte
modaliiti de a formata fesirea utlizand functia primi.
57 AriganeA VALORILOR DE TIP LONG INT
FOLOSIND FUNCTIA PRINTF
Se ee eee tara wer ssa de tra ox
at
si ef Pa a i spa
AFISAREA VALORILOR DE TIP CHAR
FOLOSIND FUNCTIA PRINTF
‘Asa. cum ati tovifat, furctia prim permite utlizarea unor specificatori de format care
furnizeazi informayii despre tipurile parameuilor (cum ar fi tnt, float, char si aga mal
‘departe). Pentru a alga valorile de tip chareu Fancia printf trebuie sk folosii specifiatocul
format he Umit program, har ou flee spcintorl deforma peta
pe ecran litera A:
sce $a\n", un_mition);
a\a", uh_mition) :
‘Atuncé cine vel compila gi executa programul long_int.¢ pe ecranul dummneavoasta va
aligat urmatoral rezultat:
Un milion este 1000000
Un milion este 16960
Dupa cum vedet, progremul chay_out.c va afiya itera A utllzand constanta de tip caracter
‘a'sivaloarea ASCII 65, tune’ cind vet compla sl exectta programul ebaroue, pe ecran
cl dumpeavoastra va fi afigat urmatorul rezultat:
| Litera este a
58 —Arisanca vALORILOR DE TIP FLOAT | itera aes A
e
FOLOSIND FUNCTIA PRINTF \>
ga cum atti, Fanci prinyf pee uzares nr spect de format ere
fe cam a i, ac rl i a Sr
eae eee cgay faut one pu bul los peter
Serr re ee eo feat lege Special da fret pn
St le ie Vs wb
‘Wnclude/Zstdio n>
AFISAREA VALORILOR IN VIRGULA MOBILA
IN FORMAT EXPCNENTIAL
‘Asa cum ati invajat, functia pringf permite utlizarea unor specificatori de format care
fumizeaza informayll despre tipurle parametilor (eum ar fi int, float, char si aga mal
depart), In sectiunea 5, att invijat cé putegi alga valor in virgula mobild prin utlizarea
speciicatorului de format 4 In funcyie de cerinjele progeaaautu, este posibil saga valor:
folosind formatul exponenjia. Pentru 2 alga valor\ in visgula mobilaint-un format
exponential, folosit specfcatonul de format 9e sau %E. Diferenta dintre Me si of este ch
specticatonil de format 92 indici functiei printf si foloseasca majuscula E in desire
Urmitorul program, expout.c foloseste ambi specificator! de format exponential pentn a
alla pe ecran valor in vzgul mobili
4
4
oe ae
oad
Ne 4
‘Acunct cand veri compila gi executa programul long into, pe ecranul dumneavoastrd va
afisat urmatorul rezultat68 Torun pespre C/C++ Prowete noprunt DEC _ 69
Winclide