Quels sont les spécificateurs de format dans c?


Meilleure réponse

C a de nombreux spécificateurs de format. Il en existe un pour chaque type évidemment, mais au-delà il en existe dautres tels quun programmeur peut afficher une variable dun certain type dans quelques représentations différentes. Par exemple, \% d affichera un entier. Mais, ce même entier peut également être affiché en hexadécimal en utilisant \% x. Néanmoins, une liste de tous les spécificateurs de format C dorigine peut être trouvée ici: Liste de tous les spécificateurs de format en programmation C – Codeforwin

Cependant, je vous recommande dadopter une approche plus moderne pour écrire votre code C qui a à voir avec déclarer les variables et les afficher de manière appropriée. Cela consiste à utiliser les définitions fournies par et . En incluant ces en-têtes, vous pouvez désormais déclarer vos variables comme ceci:

Source: Comment C (à partir de 2016)

  • int8\_t, int16\_t, int32\_t, int64\_t – entiers signés
  • uint8\_t, uint16\_t, uint32\_t, uint64\_t – entiers non signés
  • float – flottant standard 32 bits point
  • double – virgule flottante 64 bits standard
  • intptr\_t, uintptr\_t, ptrdiff\_t

La dernière puce contient les types que vous pouvez utiliser pour larithmétique des pointeurs.

Maintenant, étant donné ces types, la bonne façon de les afficher est la suivante:

  • size\_t\%zu
  • ssize\_t\%zd
  • ptrdiff\_t\%td
  • pointe brute valeur r – \%p (affiche lhexagone dans les compilateurs modernes; lancez votre pointeur vers (void *) dabord)
  • int64\_t"\%" PRId64
  • uint64\_t"\%" PRIu64 Les types 64 bits ne doivent être imprimés quen utilisant PRI[udixXo]64. Pourquoi? Sur certaines plates-formes, une valeur 64 bits est un long et sur d’autres, il « sa long long. Ces macros fournissent la spécification de format sous-jacente appropriée dans Il est en fait impossible de spécifier une chaîne de format multiplateforme correcte sans ces macros de format car les types changent sous vous (et rappelez-vous que la conversion des valeurs avant limpression nest ni sûre ni logique).
  • intptr\_t"\%" PRIdPTR
  • uintptr\_t"\%" PRIuPTR
  • intmax\_t"\%" PRIdMAX
  • uintmax\_t"\%" PRIuMAX

Exemple dimpression de lun de ces types:

printf("Local number: \%" PRIdPTR "\n\n", someIntPtr);

Notez que le PRIdPTR est en dehors des guillemets, mais juste après le signe de pourcentage. Un peu gênant syntaxiquement en effet.

Quoi quil en soit, jespère que cela répond à la plupart de ce que vous recherchiez roi pour. Les informations fournies sur lutilisation de C dune manière plus moderne concernant les types de données et leur affichage via des spécificateurs de format spéciaux proviennent dun excellent document que je suggère de lire Comment C (à partir de 2016) .

Noubliez pas non plus que vous pouvez rechercher les spécificateurs de format et tout ce qui concerne printf () dans les pages de manuel. Si vous êtes sur un système UNIX ou UNIX, ouvrez simplement votre shell et

bash$ man printf

Google est également votre ami…; -)

Réponse

Les spécificateurs de format commencent par un pourcentage \% et suivi dun caractère spécial pour identifier le type des données.

Il existe principalement 6 types de spécificateurs de format disponibles en C.

Liste des spécificateurs de format en C

Spécificateur de format dentier\% d

Le \% d est implémenté pour représenter des valeurs entières. Ceci est utilisé avec la fonction printf () pour imprimer la valeur entière stockée dans la variable.

Syntaxe:

printf("\%d",);

Spécificateur de format flottant\% f

Le \% f Le spécificateur de format est implémenté pour représenter les valeurs fractionnaires. Ceci est implémenté dans la fonction printf () pour imprimer la valeur fractionnaire ou flottante stockée dans la variable. Chaque fois que vous devez imprimer des données fractionnaires ou flottantes, vous devez utiliser le spécificateur de format \% f .

Syntaxe:

printf("\%f", );

Spécificateur de format de caractère \% c

Le spécificateur de format \% c est implémenté pour représenter les caractères. Ceci est utilisé avec la fonction printf () pour imprimer le caractère stocké dans une variable. Lorsque vous souhaitez imprimer des données de caractère, vous devez incorporer le spécificateur de format \% c .

Syntaxe:

printf("\%c",);

Spécificateur de format de chaîne\% s

Le \% s est implémenté pour représenter les chaînes. Ceci est utilisé dans la fonction printf () pour imprimer une chaîne stockée dans la variable de tableau de caractères. Lorsque vous devez imprimer une chaîne, vous devez implémenter le spécificateur de format \% s .

Syntaxe:

printf("\%s",);

Spécificateur de format entier non signé\% u

Le \% u est implémenté pour extraire les valeurs de ladresse dune variable ayant un entier décimal non signé stocké dans la mémoire. Ceci est utilisé dans la fonction printf () pour imprimer la variable entière non signée.

Syntaxe:

printf("\%u",);

Spécificateur de format int long\% ld

Le spécificateur de format \% ld est implémenté pour représenter des valeurs entières longues. Ceci est implémenté avec la fonction printf () pour imprimer la valeur entière longue stockée dans la variable.

Syntaxe:

printf("\%ld",);

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *