Condividi tramite


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 sicurezzaNota 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

Direttive flag

Specifica della larghezza per printf

Specifica precisione

Specifiche di dimensione

Caratteri di campo di tipo per printf