Spécificateurs de format scanf

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à scanf, wscanf


Dans les chaînes de format scanf, les spécificateurs de format ont la forme suivante :

% [*] [width] [F|N] [h|l|L] type_char

Chaque spécificateur de format commence par le caractère pourcent (%).

Ce qui suit % est, dans l’ordre :

Composant   Facultatif/Obligatoire Définition/Action

[*]

(Facultatif)

Caractère de précision. Le caractère de précision est un astérisque (*), à ne pas confondre avec l'opérateur d'indirection (pointeur) C.

Si l'astérisque suit le signe pourcent (%) dans un spécificateur de format, le prochain champ d'entrée sera analysé mais le prochain argument d'adresse ne lui sera pas assigné.

Les données d'entrée supprimées sont supposées être du type spécifié par le caractère de type qui suit le caractère astérisque.

[width]

(Facultatif)

Spécificateur de largeur. Le spécificateur de largeur (n), un entier décimal, contrôle le nombre maximal de caractères à lire à partir du champ d'entrée en cours.

Jusqu'à n caractères sont lus, convertis et stockés dans l'argument d'adresse en cours. Si le champ d'entrée contient moins de n caractères, la fonction ...scanf lit tous les caractères du champ, puis traite le prochain champ et spécificateur de format.

Le succès des correspondances littérales et des assignations supprimées n'est pas directement déterminable.

Si la fonction ...scanf rencontre un espace ou un caractère non convertible avant de lire les caractères "width", elle :

  • Lit, convertit et stocke les caractères lus jusqu'à maintenant, puis
  • S'occupe du spécificateur de format suivant.

Un caractère non convertible est un caractère qui ne peut pas être converti selon le format donné (8 ou 9 quand le format est octal, J ou K quand le format est hexadécimal ou décimal, et ainsi de suite).

[F|N]

(Facultatif)

Modificateur de taille de pointeur. Redéfinit la taille par défaut de l'argument d'adresse :

  • N=pointeur near
  • F=pointeur far

[h|l|L]

(Facultatif)

Modificateur de type d'argument. Redéfinit le type par défaut de l'argument d'adresse :

  • h=short int
  • l=long int, si type_char spécifie la conversion d'entier
  • l=double, si type_char spécifie la conversion de virgule flottante
  • L=long double (valide seulement avec la conversion de virgule flottante)

type_char

(Obligatoire)

Caractère de type


Voir aussi