Risposta migliore
C ha molti identificatori di formato. Ne esiste uno per ogni tipo ovviamente, ma oltre a questo ne esistono altri in modo tale che un programmatore possa visualizzare una variabile di un certo tipo in un paio di rappresentazioni differenti. Ad esempio, \% d stamperà un numero intero. Tuttavia, lo stesso numero intero può anche essere visualizzato in esadecimale utilizzando \% x. Tuttavia, un elenco di tutti gli identificatori di formato C originali può essere trovato qui: Elenco di tutti gli specificatori di formato nella programmazione C – Codeforwin
Tuttavia ti consiglio di adottare lapproccio più moderno per scrivere il tuo codice C che ha a che fare con dichiarare le variabili e visualizzarle in modo appropriato. Vale a dire utilizzare le definizioni fornite da
Fonte: How to C (a partire dal 2016)
-
int8\_t
,int16\_t
,int32\_t
,int64\_t
– numeri interi con segno -
uint8\_t
,uint16\_t
,uint32\_t
,uint64\_t
-intero senza segno -
float
– standard mobile a 32 bit punto -
double
– virgola mobile standard a 64 bit -
intptr\_t, uintptr\_t, ptrdiff\_t
Lultimo punto elenco contiene i tipi che puoi usare per laritmetica dei puntatori.
Ora, dati questi tipi, il modo corretto per visualizzarli è il seguente:
-
size\_t
–\%zu
-
ssize\_t
–\%zd
-
ptrdiff\_t
–\%td
- punta grezza valore r –
\%p
(stampa esadecimale nei compilatori moderni; trasmetti il puntatore a(void *)
first) -
int64\_t
–"\%" PRId64
-
uint64\_t
–"\%" PRIu64
I tipi a 64 bit devono essere stampati solo utilizzandoPRI[udixXo]64
macro di stile. Perché? Su alcune piattaforme un valore a 64 bit è unlong
e su altre è “salong long
. Queste macro forniscono la specifica di formato sottostante appropriata tra piattaforme. In realtà è impossibile specificare una stringa di formato multipiattaforma corretta senza queste macro di formato perché i tipi cambiano da sotto di te (e ricorda, trasmettere i valori prima della stampa non è sicuro o logico). -
intptr\_t
–"\%" PRIdPTR
-
uintptr\_t
–"\%" PRIuPTR
-
intmax\_t
–"\%" PRIdMAX
-
uintmax\_t
–"\%" PRIuMAX
Un esempio di stampa di uno di questi tipi:
printf("Local number: \%" PRIdPTR "\n\n", someIntPtr);
Tieni presente che PRIdPTR è al di fuori delle virgolette ma subito dopo il segno di percentuale. Un po fastidioso sintatticamente in effetti.
Comunque, spero che questo risponda alla maggior parte di quello che eri re per. Le informazioni fornite sullutilizzo di C in modo più moderno per quanto riguarda i tipi di dati e la loro visualizzazione tramite specificatori di formato speciali provengono da un ottimo documento che suggerisco di leggere How to C (a partire dal 2016) .
Inoltre, non dimenticare che puoi cercare specificatori di formato e tutte le cose relative a printf () nelle pagine di manuale. Se sei su un sistema UNIX o UNIX, apri semplicemente la shell e
bash$ man printf
Anche Google è tuo amico…; -)
Risposta
Gli identificatori di formato iniziano con una percentuale \% e seguito da un carattere speciale per identificare il tipo di dati.
Ci sono principalmente 6 tipi di specificatori di formato disponibili in C.
Elenco di identificatori di formato in C
Identificatore di formato intero\% d
Il \% d lidentificatore di formato è implementato per rappresentare valori interi. Viene utilizzato con la funzione printf () per stampare il valore intero memorizzato nella variabile.
Sintassi:
printf("\%d",
Identificatore di formato mobile\% f
Il \% f lidentificatore di formato è implementato per rappresentare valori frazionari. Questo è implementato allinterno della funzione printf () per stampare il valore frazionario o mobile memorizzato nella variabile. Ogni volta che devi stampare dati frazionari o mobili, devi utilizzare lidentificatore di formato \% f .
Sintassi:
printf("\%f",
Identificatore del formato dei caratteri \% c
Lidentificatore di formato \% c è implementato per rappresentare i caratteri. Viene utilizzato con la funzione printf () per stampare il carattere memorizzato in una variabile. Quando si desidera stampare i dati di un carattere, è necessario incorporare lidentificatore di formato \% c .
Sintassi:
printf("\%c",
Identificatore di formato stringa\% s
Il \% s lidentificatore di formato è implementato per rappresentare le stringhe. Viene utilizzato nella funzione printf () per stampare una stringa memorizzata nella variabile della matrice di caratteri. Quando devi stampare una stringa, devi implementare lidentificatore di formato \% s .
Sintassi:
printf("\%s",
Identificatore di formato intero senza segno\% u
Il \% u lidentificatore di formato è implementato per recuperare i valori dallindirizzo di una variabile con un intero decimale senza segno memorizzato nella memoria. Viene utilizzato allinterno della funzione printf () per stampare la variabile intera senza segno.
Sintassi:
printf("\%u",
Identificatore di formato int lungo\% ld
Identificatore di formato \% ld è implementato per rappresentare valori interi lunghi. Questo è implementato con la funzione printf () per stampare il valore intero lungo memorizzato nella variabile.
Sintassi:
printf("\%ld",