Spécificateurs et modificateurs de conversion C

Une référence pratique aux spécificateurs et modificateurs de conversion C

Dans cet article, je souhaite créer une référence utile pour tous lesCconversionprescripteursvous pouvez utiliser, généralement avecprintf(),scanf()et des fonctions d'E / S similaires.

Prescripteur Sens
%d/%i Entier décimal signé
%u Entier décimal non signé
%c Non signéchar
%s Chaîne de caractères
%p Pointeur sous forme hexadécimale
%o Entier octal non signé
%x/%X Nombre hexadécimal non signé
%e Nombre à virgule flottante au format exponentiel enenotation
%E Nombre à virgule flottante au format exponentiel enEnotation
%f doublenombre au format décimal
%g/%G doublenombre au format décimal ou au format exponentiel selon la valeur

En plus de ces spécificateurs, nous avons un ensemble demodificateurs.

Commençons avecchiffres. En utilisant un chiffre entre%et le spécificateur de format, vous pouvez indiquer la largeur minimale du champ. Exemple:%3dprendra 3 espaces quel que soit le nombre imprimé.

Ce:

printf("%4d\n", 1);
printf("%4d\n", 12);
printf("%4d\n", 123);
printf("%4d\n", 1234);

devrait imprimer

   1
  12
 123
1234

If you put a dot before the digit, you are not telling the precision: the number of decimal digits. This of course applies to decimal numbers. Example:

printf("%4.2f\n", 1.0);
printf("%4.3e\n", 12.232432442);
printf("%4.1e\n", 12.232432442);
printf("%4.1f\n", 123.22);

will print:

1.00
1.223e+01
1.2e+01
123.2

In addition to digits, we have 3 special letters: h, l and L.

  • h, used with integer numbers, indicates a short int (for example %hd) or a short unsigned int (for example %hu)
  • l, used with integer numbers, indicates a long int (for example %ld) or a long unsigned int (for example %lu).
  • L, used with floating point numbers, indicates a long double, for example %Lf

Download my free C Handbook


More clang tutorials: