Le spécificateur de format en C est utilisé pour indiquer au compilateur le type de données à imprimer ou à numériser lors des opérations d'entrée et de sortie. Ils commencent toujours par un % symbole et sont utilisés dans la chaîne formatée dans des fonctions comme printf(), scanf, sprintf(), etc.
Le langage C fournit un certain nombre de spécificateurs de format associés aux différents types de données, tels que %d pour int, %c pour char, etc. Dans cet article, nous aborderons certains spécificateurs de format couramment utilisés et comment les utiliser.
Liste des spécificateurs de format en C
Le tableau ci-dessous contient les spécificateurs de format les plus couramment utilisés en C.
Spécificateur de format | Description |
---|---|
%c | Pour le type de caractère. |
%d | Pour le type entier signé. |
%e ou %E | Pour la notation scientifique des flotteurs. |
%F | Pour type flotteur. |
%g ou %G | Pour le type float avec la précision actuelle. |
%je | Entier non signé |
%ld ou %li | Long |
%lf | Double |
%Lf | Double long |
%lu | Int non signé ou long non signé |
%lli ou %lld | Très longtemps |
%llu | Non signé depuis longtemps |
%O | Représentation octale |
%p | Aiguille |
%s | Chaîne |
%dans | Entier non signé |
%x ou %X | Représentation hexadécimale |
%n | N'imprime rien |
%% | Imprime % caractère |
Exemples de spécificateurs de format en C
1. Spécificateur de format de caractère – %c en C
Le %c est le spécificateur de format pour le carboniser type de données en langage C. Il peut être utilisé à la fois pour une entrée formatée et une sortie formatée en langage C.
Syntaxe:
scanf(' %d ...', ...); printf(' %d ...', ...);>
Exemple:
C
imprimer depuis Java
// 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;> }> |
>
>
Saisir:
Enter some character: A>
Sortir:
The entered character: A>
2. Spécificateur de format entier (signé) – %d en C
Nous pouvons utiliser le spécificateur de format entier signé %d dans les fonctions scanf() et print() ou d'autres fonctions qui utilisent une chaîne formatée pour l'entrée et la sortie de int Type de données.
Syntaxe:
scanf('%d...', ...); printf('%i...', ...);>
Exemple:
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;> }> |
>
>
Saisir:
Enter the integer: 45>
Sortir:
Printed using %d: 45 Printed using %i: 45>
3. Spécificateur de format entier non signé – %u en C
Le %u est le spécificateur de format pour le type de données entier non signé. Si nous spécifions une valeur entière négative au %u, il convertit l'entier en son premier complément.
Syntaxe:
printf(' %u ...', ...); scanf(' %u ...', ...);>
Exemple: Le programme C suivant montre comment utiliser %u en C.
convertir la chaîne en entier
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;> }> |
>
>
Saisir:
Enter an integer: 25>
Sortir:
Entered unsigned integer: 25 Printing -10 using %u: 4294967286>
4. Spécificateur de format à virgule flottante – %f en C
Le %F est le spécificateur de format à virgule flottante en langage C qui peut être utilisé dans la chaîne formatée pour l'entrée et la sortie de flotter Type de données. En dehors de %f, nous pouvons utiliser %C'est ou %ET spécificateurs de format pour imprimer le valeur à virgule flottante sous forme exponentielle.
Syntaxe:
printf(' %f ...', ...); scanf(' %e ...', ...); printf(' %E ...', ...);>
Exemple:
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;> }> |
>
>Sortir
Using %f: 12.670000 Using %e: 1.267000e+01 Using %E, 1.267000E+01>
5. Nombre octal non signé pour entier – %o en C
Nous pouvons utiliser le spécificateur de format %o dans le programme C pour imprimer ou prendre en entrée le nombre entier octal non signé.
Syntaxe:
printf(' %o ...', ...); scanf(' %o ...', ...);>
Exemple:
C
#include> int> main()> {> > int> a = 67;> > printf> (> '%o
'> , a);> > return> 0;> }> |
>
>Sortir
103>
6. Hexadécimal non signé pour entier – %x en C
Le spécificateur de format %x est utilisé dans la chaîne formatée pour les entiers hexadécimaux. Dans ce cas, les alphabets des nombres hexadécimaux seront en minuscules. Pour les chiffres de l’alphabet majuscules, nous utilisons plutôt %X.
Syntaxe:
printf(' %x ...', ...); scanf(' %X ...', ...);>
Exemple:
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;> }> |
>
>Sortir
3c5e 3C5E>
7. Spécificateur de format de chaîne – %s en C
Le %s en C est utilisé pour imprimer des chaînes ou prendre des chaînes en entrée.
Syntaxe:
printf(' %s ...', ...); scanf(' %s ...', ...);>
Exemple:
C
// C program to illustrate the use of %s in C> #include> int> main()> {> > char> a[] => 'Hi Geeks'> ;> > printf> (> '%s
'> , a);> > return> 0;> }> |
>
>Sortir
Hi Geeks>
Exemple: Le fonctionnement de %s avec scanf() est un peu différent de celui avec printf(). Comprenons cela à l’aide du programme C suivant.
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;> }> |
>
>
Saisir
Enter the string: Hi Geeks>
Sortir
Hi>
Comme nous pouvons le voir, la chaîne n'est analysée que jusqu'à ce qu'un espace soit rencontré. Nous pouvons éviter cela en utilisant scansets en C .
8. Spécificateur de format d'adresse – %p en C
Le langage C fournit également le spécificateur de format pour imprimer l'adresse/les pointeurs. Nous pouvons utiliser %p pour imprimer des adresses et des pointeurs en C
Syntaxe
printf(' %p ...', ...);>
Exemple:
C
conversion de chaîne en int java
#include> int> main()> {> > int> a = 10;> > printf> (> 'The Memory Address of a: %p
'> ,(> void> *)&a);> > return> 0;> }> |
>
>Sortir
The Memory Address of a: 0x7ffe9645b3fc>
Formatage d'entrée et de sortie
Le langage C fournit des outils grâce auxquels nous pouvons formater l'entrée et la sortie. Ils sont généralement insérés entre le signe % et le symbole du spécificateur de format. Certains d'entre eux sont les suivants :
- Un signe moins (-) indique l'alignement à gauche.
- Un numéro après % spécifie la largeur minimale du champ à imprimer si les caractères sont inférieurs à la taille de la largeur, l'espace restant est rempli d'espace et s'il est supérieur alors il est imprimé tel quel sans troncature.
- Un symbole point ( . ) sépare la largeur du champ avec précision.
La précision indique le nombre minimum de chiffres dans un entier, le nombre maximum de caractères dans une chaîne et le nombre de chiffres après la partie décimale dans une valeur flottante.
Exemple de formatage d'E/S
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;> }> |
>
>Sortir
geeksforgeeks geeksforgeeks geeks geeks>
FAQ sur les spécificateurs de format C
1. C a-t-il un spécificateur de format pour les nombres binaires ?
Non, le langage C ne fournit pas de spécificateur de format pour les nombres binaires.
2. Quelle est la chaîne formatée ?
Les fonctions d'entrée et de sortie en C prennent une chaîne comme argument qui décide de la manière dont les données sont affichées à l'écran ou les données sont récupérées dans la mémoire. Cette chaîne est appelée chaîne formatée.