logo

Identificatori di formato in C

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:

  1. Un segno meno(-) indica l'allineamento a sinistra.
  2. 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.
  3. 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.