L'identificatore di formato in C viene utilizzato per indicare al compilatore il tipo di dati da stampare o scansionare nelle operazioni di input e output. Iniziano sempre con a % simbolo e sono utilizzati nella stringa formattata in funzioni come printf(), scanf, sprintf(), ecc.
Il linguaggio C fornisce una serie di identificatori di formato associati ai diversi tipi di dati come %d per int, %c per char, ecc. In questo articolo discuteremo alcuni identificatori di formato comunemente utilizzati e come utilizzarli.
Elenco degli specificatori di formato in C
La tabella seguente contiene gli identificatori di formato più comunemente utilizzati in C
Identificatore di formato | Descrizione |
---|---|
%C | Per tipo di carattere. |
%D | Per il tipo intero con segno. |
%e o %E | Per la notazione scientifica dei float. |
%F | Per tipo galleggiante. |
%g o %G | Per il tipo float con la precisione corrente. |
%io | Intero senza segno |
%ld o %li | Lungo |
%lf | Doppio |
%Lf | Doppio lungo |
%lu | Unsigned int o unsigned long |
%lli o %lld | Lungo lungo |
%llu | Non firmato da molto tempo |
%O | Rappresentazione ottale |
%P | Puntatore |
%S | Corda |
%In | Intero non firmato |
%x o %X | Rappresentazione esadecimale |
%N | Non stampa nulla |
%% | Stampa il carattere % |
Esempi di specificatori di formato in C
1. Identificatore del formato dei caratteri – %c in C
%c è l'identificatore di formato per car tipo di dati in linguaggio C. Può essere utilizzato sia per input formattato che per output formattato in linguaggio C.
Sintassi:
scanf(' %d ...', ...); printf(' %d ...', ...);>
Esempio:
C
la stringa Java contiene
// C Program to illustrate the %c format specifier.> #include> int> main()> {> > char> c;> > // using %c for character input> > scanf> (> 'Enter some character: %c'> , &c);> > // using %c for character output> > printf> (> 'The entered character: %c'> , &c);> > return> 0;> }> |
>
>
Ingresso:
Enter some character: A>
Produzione:
The entered character: A>
2. Identificatore di formato intero (con segno) – %d in C
Possiamo usare l'identificatore di formato dell'intero con segno %D nelle funzioni scanf() e print() o altre funzioni che utilizzano stringhe formattate per l'input e l'output di int tipo di dati.
Sintassi:
scanf('%d...', ...); printf('%i...', ...);>
Esempio:
C
// C Program to demonstrate the use of %d and %i> #include> // Driver code> int> main()> {> > int> x;> > // taking integer input> > scanf> (> 'Enter the two integers: %d'> , &x);> > // printing integer output> > printf> (> 'Printed using %%d: %d
'> , x);> > printf> (> 'Printed using %%i: %3i
'> , x);> > return> 0;> }> |
>
>
Ingresso:
Enter the integer: 45>
Produzione:
Printed using %d: 45 Printed using %i: 45>
3. Identificatore di formato intero senza segno – %u in C
%u è l'identificatore di formato per il tipo di dati intero senza segno. Se specifichiamo un valore intero negativo per %u, converte l'intero nel suo primo complemento.
Sintassi:
printf(' %u ...', ...); scanf(' %u ...', ...);>
Esempio: Il seguente programma C dimostra come utilizzare %u in C.
C
// C Program to illustrate the how to use %u> #include> // driver code> int> main()> {> > unsigned> int> var;> > scanf> (> 'Enter an integer: %u'> , &var);> > printf> (> 'Entered Unsigned Integer: %u'> , var);> > // trying to print negative value using %u> > printf> (> 'Printing -10 using %%u: %u
'> , -10);> > return> 0;> }> |
>
scheda SIM inserita ma nessun servizio Android
>
Ingresso:
Enter an integer: 25>
Produzione:
Entered unsigned integer: 25 Printing -10 using %u: 4294967286>
4. Identificatore di formato in virgola mobile – %f in C
IL %F è l'identificatore di formato in virgola mobile nel linguaggio C che può essere utilizzato all'interno della stringa formattata per l'input e l'output di galleggiante tipo di dati. A parte %f, possiamo usare %È O %E specificatori di formato per stampare il file valore in virgola mobile in forma esponenziale.
Sintassi:
printf(' %f ...', ...); scanf(' %e ...', ...); printf(' %E ...', ...);>
Esempio:
C
// C program to demonstrate the use of %f, %e and %E> #include> // driver code> int> main()> {> > float> a = 12.67;> > printf> (> 'Using %%f: %f
'> , a);> > printf> (> 'Using %%e: %e
'> , a);> > printf> (> 'Using %%E, %E'> , a);> > return> 0;> }> |
>
>Produzione
Using %f: 12.670000 Using %e: 1.267000e+01 Using %E, 1.267000E+01>
5. Numero ottale senza segno per intero – %o in C
Possiamo usare l'identificatore di formato %o nel programma C per stampare o ricevere input per il numero intero ottale senza segno.
Sintassi:
printf(' %o ...', ...); scanf(' %o ...', ...);>
Esempio:
C
#include> int> main()> {> > int> a = 67;> > printf> (> '%o
'> , a);> > return> 0;> }> |
>
>Produzione
convertire una data in una stringa
103>
6. Esadecimale senza segno per numero intero – %x in C
L'identificatore di formato %x viene utilizzato nella stringa formattata per gli interi esadecimali. In questo caso gli alfabeti dei numeri esadecimali saranno minuscoli. Per le cifre dell'alfabeto maiuscolo, utilizziamo invece %X.
Sintassi:
printf(' %x ...', ...); scanf(' %X ...', ...);>
Esempio:
C
// C Program to demonstrate the use of %x and %X> #include> int> main()> {> > int> a = 15454;> > printf> (> '%x
'> , a);> > printf> (> '%X'> , a);> > return> 0;> }> |
>
>Produzione
3c5e 3C5E>
7. Identificatore del formato stringa – %s in C
Il %s in C viene utilizzato per stampare stringhe o prendere stringhe come input.
Sintassi:
printf(' %s ...', ...); scanf(' %s ...', ...);>
Esempio:
C
// C program to illustrate the use of %s in C> #include> int> main()> {> > char> a[] => 'Hi Geeks'> ;> > printf> (> '%s
'> , a);> > return> 0;> }> |
>
>Produzione
Hi Geeks>
Esempio: Il funzionamento di %s con scanf() è leggermente diverso dal funzionamento con printf(). Capiamolo con l'aiuto del seguente programma C.
C
// C Program to illustrate the working of %s with scanf()> #include> int> main()> {> > char> str[50];> > // taking string as input> > scanf> (> 'Enter the String: %s'> , str);> > printf> (> 'Entered String: %s'> , str);> > return> 0;> }> |
>
>
Ingresso
Enter the string: Hi Geeks>
Produzione
Hi>
Come possiamo vedere, la stringa viene scansionata solo finché non viene incontrato uno spazio bianco. Possiamo evitarlo utilizzando scanset in C .
8. Identificatore del formato dell'indirizzo – %p in C
Il linguaggio C fornisce anche l'identificatore di formato per stampare l'indirizzo/puntatori. Possiamo usare %p per stampare indirizzi e puntatori in C
Sintassi
printf(' %p ...', ...);>
Esempio:
C
cos'è macOS
#include> int> main()> {> > int> a = 10;> > printf> (> 'The Memory Address of a: %p
'> ,(> void> *)&a);> > return> 0;> }> |
>
>Produzione
The Memory Address of a: 0x7ffe9645b3fc>
Formattazione di input e output
Il linguaggio C fornisce alcuni strumenti utilizzando i quali possiamo formattare l'input e l'output. Generalmente vengono inseriti tra il segno % e il simbolo specificatore di formato. Alcuni di essi sono i seguenti:
- Un segno meno(-) indica l'allineamento a sinistra.
- Un numero dopo % specifica la larghezza minima del campo da stampare se i caratteri sono inferiori alla dimensione della larghezza lo spazio rimanente viene riempito con spazio e se è maggiore viene stampato così com'è senza troncamento.
- Un simbolo punto (.) separa la larghezza del campo con precisione.
La precisione indica il numero minimo di cifre in un numero intero, il numero massimo di caratteri in una stringa e il numero di cifre dopo la parte decimale in un valore mobile.
Esempio di formattazione I/O
C
// C Program to demonstrate the formatting methods.> #include> int> main()> {> > char> str[] => 'geeksforgeeks'> ;> > printf> (> '%20s
'> , str);> > printf> (> '%-20s
'> , str);> > printf> (> '%20.5s
'> , str);> > printf> (> '%-20.5s
'> , str);> > return> 0;> }> |
>
>Produzione
geeksforgeeks geeksforgeeks geeks geeks>
Domande frequenti sugli specificatori di formato C
1. Il C ha uno specificatore di formato per i numeri binari?
No, il linguaggio C non fornisce uno specificatore di formato per i numeri binari.
2. Qual è la stringa formattata?
Le funzioni di input e output in C accettano una stringa come argomento che decide come i dati vengono visualizzati sullo schermo o come vengono recuperati in memoria. Questa stringa è chiamata stringa formattata.