English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Lezione di base del linguaggio C

Controllo del flusso del linguaggio C

Funzioni del linguaggio C

Array del linguaggio C

Puntatori del linguaggio C

Stringhe del linguaggio C

Struttura del linguaggio C

File del linguaggio C

Altri C

Manuale di riferimento del linguaggio C

Simboli di conversione del formato C

I simboli di formattazione sono stringhe utilizzate nelle funzioni di input e output formattati. La stringa di formato determina il formato dell'input e dell'output. La stringa di formato inizia sempre con il carattere "%%".

1. Spiegazione dei simboli di conversione e dell'output come risultato

Spiegazione della conversione

Output

%a

Numero floating-point, numero esadecimale e notazione p (C99)

%A

Numero floating-point, numero esadecimale e notazione P (C99)

%c

Un carattere

%d

Numero intero decimale con segno

%e

Numero floating-point, notazione e

%E

Numero floating-point, notazione E

%f

Numero floating-point, notazione decimale

%g

Scegli automaticamente %f o %e in base al valore numerico. Il formato %e viene utilizzato quando l'esponente è minore di -4 o maggiore o uguale alla precisione

%G

Scegli automaticamente %f o %E in base al valore numerico. Il formato %E viene utilizzato quando l'esponente è minore di -4 o maggiore o uguale alla precisione

%i

Numero intero decimale con segno (uguale a %d)

%o

Numero intero ottale unsigned

%p

Puntatore (cioè l'indirizzo)

%s

Stringa

㩵n

Numero intero unsigned decimale

%x

Utilizzo del numero intero esadecimale 0f

%X

%X

usare un intero esadecimale senza segno con il numero 0F

%%

stampare un percento

Modificatore

Significato

due, modificatori di printf()

segni

digit(s)

cinque segni (-, +, spazio, # e 0) saranno descritti nella tabella tre, possono essere usati zero o più segni

Precisione. Per le conversioni %e, %E e %f, è il numero di cifre da stampare dopo il punto decimale. Per le conversioni %g e %G, è il numero massimo di cifre significative. Per la conversione %s, è il numero massimo di caratteri da stampare. Per le conversioni intere, è il numero minimo di cifre da stampare; se necessario, devono essere utilizzati zeri iniziali per raggiungere questo numero di cifre. Utilizza solo “digit(s)

valore minimo della larghezza del campo. Se il campo non può contenere il numero o la stringa da stampare, il sistema utilizzerà un campo più largo. Esempio: “%4d”Precisione. Per le conversioni %e, %E e %f, è il numero di cifre da stampare dopo il punto decimale. Per le conversioni %g e %G, è il numero massimo di cifre significative. Per la conversione %s, è il numero massimo di caratteri da stampare. Per le conversioni intere, è il numero minimo di cifre da stampare; se necessario, devono essere utilizzati zeri iniziali per raggiungere questo numero di cifre. Utilizza solo “.

“indica che segue un zero, quindi %.f e %.0f sono uguali. Esempio: “%5.2f” stampa un numero a virgola mobile con una larghezza di campo di 5 caratteri e due cifre dopo il punto.

usato insieme ai segni di conversione interi, per rappresentare unh oppure short int unsigned char

unsigned short int

hh

usato insieme ai segni di conversione interi, per rappresentare unEsempio: “%hu”、“%hx” e “%6.4hd” oppuresigned charunsigned char

valore di tipo numerico.

Esempio: “%hhu”、“%hhx” e “%6.4hhd”

j

usato insieme ai segni di conversione interi, per rappresentare un intmax_t o uintmax_t.

l

usato insieme ai segni di conversione interi, per rappresentare unlong int oppureunsigned long int valore di tipo.

Esempio: “%ld” e “%8lu”

ll

usato insieme ai segni di conversione interi, per rappresentare unlong long into unsigned long long int valore di tipo (C99).

Esempio: “%lld” e “%8llu”

L

usato insieme ai segni di conversione a virgola mobile, per rappresentare unlong doublevalore.

Esempio: “%Lf” e “%10.4Le”

t

usato insieme ai segni di conversione interi, per rappresentare un ptrdiff_t (il tipo corrispondente alla differenza tra due puntatori) (C99)

Esempio: “%td” e “%12ti”

z

usato insieme ai segni di conversione interi, per rappresentare unsize_tvalore(sizeof restituisce il tipo) (C99).

Esempio: “%zd” e “%12zx”

tre e il segno di printf()

Modificatore

Significato

-

L'elemento è allineato a sinistra, ossia, verrà stampato all'inizio del campo. Esempio: “%-20s”

+

I valori con segno, se positivi, vengono visualizzati con un segno più; se negativi, con un segno meno. Esempio: “%+6.2f”

(spazio)

Se il valore è positivo, mostra uno spazio iniziale (ma non il segno); se è negativo, mostra il segno meno. Il segno + copre il segno di spazio.

#

Usa la forma opzionale del simbolo di conversione. Se è il formato %o, inizia con 0; se sono i formati %x e %X, inizia con 0x o 0X, per tutti i formati a virgola mobile, # garantisce che venga stampato un carattere punto decimale anche se non vengono specificati numeri, per i formati %g e %G, impedisce la rimozione dei zeri finali. Esempio: “%#o”、“%#8.0f” e “%+#10.3E”

0

Per tutti i formati numerici, usa lo zero iniziale invece di uno spazio per riempire la larghezza del campo. Ignora il simbolo di segno se viene utilizzato un simbolo di segno o specificata la precisione (per i numeri interi). Esempio: “%010d” e “%08.3f”

Quattro, i simboli di conversione di scanf() in ANSI C

Simbolo di conversione

Significato

%c

Interpreta l'input come un carattere

%d

Interpreta l'input come un numero decimale singolo

%e, %f, %g, %a

Interpreta l'input come un numero decimale a virgola mobile (%a è lo standard C99)

%E, %F, %G, %A

Interpreta l'input come un numero decimale a virgola mobile (%A è lo standard C99)

%i

Interpreta l'input come un numero decimale singolo

%o

Interpreta l'input comeSingoloNumero ottale

%p

Interpreta l'input come un puntatore (indirizzo)

%s

㩵n

Interpreta l'input come un numero decimale senza segno

%x, %X

Interpreta l'input comeSingoloIntero esadecimale

Cinque, i modificatori di conversione di scanf()

Modificatore

Significato

*

Assegnazione posteriore. Esempio: “%*d”

digit(s)

Larghezza massima del campo; smetti di leggere l'input quando si raggiunge la larghezza massima del campo o si incontra il primo carattere bianco (che viene prima, non importa). Esempio: “%10s”

hh

Leggi l'intero come signed char o unsigned char. Esempio: “%hhd”“%hhu”

ll

Leggi l'intero come long long o unsigned long long (C99). Esempio: “%lld”“%llu”

h, l o L

“%hd” e “%hi” indicano che il valore verrà memorizzato in un short int.

“%ho”“%hx” e “%hu” indicano che il valore verrà memorizzato in un unsigned short int.

“%ld” e “%li” indicano che il valore verrà memorizzato in un long.

“%lo”“%lx” e “%lu” indicano che il valore verrà memorizzato in un unsigned long.

“%le”“%lf” e “%lg” indicano che il valore è memorizzato come tipo double. Utilizzare L (piuttosto che l) con e, f e g per indicare che il valore è memorizzato come tipo long double.

Se non ci sono questi modificatori, d, i, o e x indicano il tipo int, mentre e, f e g indicano il tipo float.