Cel mai bun răspuns
C are mulți specificatori de format. În mod evident există unul pentru fiecare tip, dar dincolo de acesta există altele astfel încât un programator să poată afișa o variabilă de un anumit tip într-un cuplu de reprezentări diferite. De exemplu, \% d va imprima un număr întreg. Dar același număr întreg poate fi afișat și în hexazecimal utilizând \% x. Cu toate acestea, o listă cu toți specificatorii de format C originală poate fi găsită aici: Lista tuturor specificatorilor de format din programarea C – Codeforwin
Cu toate acestea, vă recomand să luați o abordare mai modernă pentru scrierea codului dvs. C care are legătură cu declarând variabile și afișându-le în mod corespunzător. Adică să folosiți definițiile furnizate de
Sursă: Cum să C (începând cu 2016)
-
int8\_t
,int16\_t
,int32\_t
,int64\_t
– numere întregi semnate -
uint8\_t
,uint16\_t
,uint32\_t
,uint64\_t
-numere întregi nesemnate -
float
– flotant standard pe 32 de biți punct -
double
– virgulă mobilă standard pe 64 de biți -
intptr\_t, uintptr\_t, ptrdiff\_t
Ultimul glonț conține tipuri pe care le puteți folosi pentru aritmetica indicatorului.
Acum, având în vedere astfel de tipuri, modul corect de a le afișa este după cum urmează:
-
size\_t
–\%zu
-
ssize\_t
–\%zd
-
ptrdiff\_t
–\%td
- pointe brut valoare r –
\%p
(tipărește hex în compilatoare moderne; aruncați indicatorul la(void *)
mai întâi) -
int64\_t
–"\%" PRId64
-
uint64\_t
–"\%" PRIu64
Tipurile de 64 de biți trebuie tipărite numai utilizândPRI[udixXo]64
macro-uri stil. De ce? Pe unele platforme, o valoare pe 64 de biți estelong
, iar pe altele este „salong long
. Aceste macrocomenzi furnizează specificațiile corespunzătoare ale formatului platforme. Este de fapt imposibil să specificați un șir de format multiplataforma corect fără aceste macrocomenzi de format, deoarece tipurile se schimbă de sub dvs. (și amintiți-vă, exprimarea valorilor înainte de tipărire nu este sigură sau logică). -
intptr\_t
–"\%" PRIdPTR
-
uintptr\_t
–"\%" PRIuPTR
-
intmax\_t
–"\%" PRIdMAX
-
uintmax\_t
–"\%" PRIuMAX
Un exemplu de tipărire a unuia dintre aceste tipuri:
printf("Local number: \%" PRIdPTR "\n\n", someIntPtr);
Rețineți că PRIdPTR se află în afara cotațiilor, dar imediat după semnul procentului. Oarecum enervant din punct de vedere sintactic într-adevăr.
Oricum, sper să răspundă la cea mai mare parte din ceea ce ai fost loo rege pt. Informațiile furnizate despre utilizarea C într-o manieră mai modernă în ceea ce privește tipurile de date și afișarea acestora prin intermediul unor specificatori de format special provin dintr-un document excelent pe care îl sugerez să citiți Cum să faceți C (începând cu 2016) .
De asemenea, nu uitați că puteți căuta specificatori de format și toate lucrurile printf () legate în paginile man. Dacă utilizați un sistem UNIX sau UNIX, trebuie doar să deschideți shell-ul și
bash$ man printf
De asemenea, google este prietenul dvs. …; -)
Răspuns
Specificatorii de format încep cu un procent \% operator și urmat de un caracter special pentru identificarea tipului de date.
Există în principal 6 tipuri de specificatori de format care sunt disponibile în C.
Lista specificatorilor de format din C
Specificator format întreg\% d
Specificatorul de format\% d este implementat pentru reprezentarea valorilor întregi. Aceasta este utilizată cu funcția printf () pentru imprimarea valorii întregi stocate în variabilă.
Sintaxă:
printf("\%d",
Float Format Specifier\% f
\% f specificatorul de format este implementat pentru reprezentarea valorilor fracționare. Acest lucru este implementat în cadrul funcției printf () pentru imprimarea valorii fracționate sau flotante stocate în variabilă. Ori de câte ori aveți nevoie să imprimați orice date fracționate sau plutitoare, trebuie să utilizați specificatorul de format \% f .
Sintaxă:
printf("\%f",
Specificator format caracter \% c
Specificatorul de format \% c este implementat pentru reprezentarea caracterelor. Aceasta este utilizată cu funcția printf () pentru imprimarea caracterului stocat într-o variabilă. Când doriți să imprimați datele unui caracter, ar trebui să încorporați specificatorul de format \% c .
Sintaxă:
printf("\%c",
Specificator format șir\% s
\% s specificatorul de format este implementat pentru reprezentarea șirurilor. Aceasta este utilizată în funcția printf () pentru imprimarea unui șir stocat în variabila matrice de caractere. Când trebuie să imprimați un șir, trebuie să implementați specificatorul de format \% s .
Sintaxă:
printf("\%s",
Specificator de format întreg nesemnat\% u
\% u specificatorul de format este implementat pentru preluarea valorilor de la adresa unei variabile cu număr întreg zecimal nesemnat stocat în memorie. Aceasta este utilizată în funcția printf () pentru imprimarea variabilei întregi nesemnate.
Sintaxă:
printf("\%u",
Specificator pentru formatul Int Long\% ld
Specificatorul de format \% ld este implementat pentru reprezentarea valorilor întregi lungi. Acest lucru este implementat cu funcția printf () pentru imprimarea valorii întregi lungi stocate în variabilă.
Sintaxă:
printf("\%ld",