Sintassi per la specifica del formato: funzioni printf wprintf
Viene descritta la sintassi per gli argomenti delle stringhe di formato a printf, wprintf e funzioni correlate. Sono disponibili più versioni sicure di queste funzioni; per ulteriori informazioni, consultare Funzionalità di sicurezza in CRT. Per informazioni sulle singole funzioni, consultare la documentazione per le funzioni specifiche. Per un elenco di questi funzioni, consultare I/O di flusso.
Una specifica di formato, costituita da campi obbligatori e opzionali, presenta il seguente formato:
%[flag] [larghezza] [.precisione] [{h | l | ll | w | I | I32 | I64}] tipo
Ciascun campo della specifica di formato è un carattere o un numero che indica un particolare identificatore di conversione o di opzione di formattazione. Il carattere type necessario specifica il tipo di conversione da applicare a un argomento. Il flags facoltativo, width e gli aspetti aggiuntivi di formato del controllo di campi precision. Una specifica del formato base contiene solo il segno di percentuale e un carattere type, ad esempio %s, che specifica una conversione delle stringhe. Se un segno di percentuale è seguito da un carattere che non ha senso come campo di formato, il carattere viene copiato sull'output invariato. Per stampare un carattere di segno di percentuale, utilizzare %%.
I campi della specifica di formato controllano i seguenti aspetti di conversione e di formattazione dell'argomento:
type
Carattere obbligatorio dell'identificatore di conversione che determina se argument collegato verrà interpretato come un carattere, una stringa, un intero, o numero a virgola mobile. Per ulteriori informazioni, vedere Caratteri di campo di tipo per printf.flags
Carattere facoltativo o caratteri che controllano la formattazione dell'output e l'output dei segni, gli spazi vuoti, zeri iniziali, i separatori decimali e di prefissi esadecimali e ottali. Per ulteriori informazioni, vedere Direttive flag. Più flag possono essere visualizzati in una specifica di formato e i flag possono essere utilizzati in qualsiasi ordine.width
Numero decimale opzionale che specifica il numero minimo di caratteri che vengono restituiti. Per ulteriori informazioni, vedere Specifica della larghezza per printf.precision
Numero decimale opzionale che specifica il numero massimo di caratteri che vengono stampati per le stringhe, il numero di cifre significative o il numero di cifre dopo il separatore decimale per i valori a virgola mobile, o il numero minimo di cifre che vengono stampate per i valori Integer. Per ulteriori informazioni, consultare "Come la precisione del valore interessi il tipo" in Specifica precisione.h | l | ll | w | I | I32 | I64
Prefissi facoltativi per type che specificano le dimensioni dell'argomento corrispondente. Per ulteriori informazioni, consultare "Prefissi di dimensione" in Specifiche di dimensione.
Nota sulla sicurezza |
---|
Assicurarsi che le stringhe di specifica di formato non siano definite dall'utente.Ad esempio, si consideri un programma che richiede all'utente di un nome e memorizza l'input in una variabile di stringa denominata name.Per stampare name, non eseguire questa operazione: printf( name ); /* Danger! If name contains "%s", program will crash */ Al contrario, eseguire questa operazione: printf( "%s", name ); |
Vedere anche
Riferimenti
printf, _printf_l, wprintf, _wprintf_l
printf_s, _printf_s_l, wprintf_s, _wprintf_s_l
Parametri posizionali printf_p