Conversioni di formato nella printf

In corrispondenza ad ogni espressione che appare come argomento di output della printf
si deve inserire un descrittore del formato di conversione.

La sintassi per i formati e' :

        %[modificatore][campo_minimo][precisione][modificatore_lunghezza]specifica_di_conversione

dove

[...] indica un campo opzionale

modificatore puo' essere una combinazione (in qualsiasi ordine) dei seguenti simboli:
 
 

Simbolo effetto                                                                                                                                    
 - il risultato della conversione e' allineato a sinistra all' interno del campo definito da campo_minimo 
il default e' l' allineamento a destra
+ Il risultato di conversioni di tipi con segno inizia con + (se positivi) o - (se negativi)
il default e' che il segno  (-)   appare solo  davanti ai negativi
spazio inserisce uno spazio davanti al valore se il primo carattere non e' un segno
# formato alternativo (con piccole variazioni) per la maggior parte delle specifice di conversione
0 il campo viene riempito con zeri invece che con spazi (il default)

campo_minimo  : se il valore convertito ha meno caratteri del campo questo viene riempito da spazi, il valore di campo_minimo puo' essere un intero o *. In quest' ultimo caso il valore deve essere un intero inserito nella lista degli argomenti della printf, subito prima dell' espressione interessata da questo formato.

precisione :  un valore nella forma .n (con n intero oppure * se viene letto nella lista degli argomenti) dove n e' il  :

modificatore_di_lunghezza :  dichiara che la successiva specifica di conversione deve essere applicata a un sottotipo intero particolare
 
modificatore il successivo specificatore (i o d) si applica ad un' espressione 
hh signed o unsigned char
h signed o unsigned short int
l signed o unsigned long int
ll signed o unsigned long long int

specifica_di_conversione :