Conventions relatives aux spécificateurs de format

De RAD Studio
Aller à : navigation, rechercher

Remonter à scanf, wscanf

Certaines conventions s'appliquent aux spécificateurs de format scanf pour les conversions suivantes :

Spécificateur de format Conventions

Caractère unique (%c)

Cette spécification lit le caractère suivant, y compris le caractère espace (blanc).

Pour ignorer un caractère espace (blanc) et lire le prochain caractère qui n'est pas un espace (blanc), utilisez %1s.

Caractère tableau (%[W]c)

[W] = spécification de largeur

L'argument adresse est un pointeur sur un tableau de caractères (char arg[W]). Le tableau est composé d'éléments W.

Chaîne (%s)

L'argument adresse est un pointeur sur un tableau de caractères (char arg[]).

La taille du tableau doit être d'au moins (n+1) octets, où n = la longueur de la chaîne s (en caractères).

Un caractère espace ou nouvelle ligne termine le champ d'entrée.

Un terminateur null est automatiquement ajouté à la fin de la chaîne et stocké en tant que dernier élément du tableau.

Virgule flottante (%e, %E, %f, %g et %G)

Les nombres en virgule flottante du champ d'entrée doivent être conformes au format générique suivant :

[+/-] ddddddddd [.] dddd [E|e] [+/-] ddd

où [élément] indique que l'élément est facultatif, et ddd représente les chiffres (décimal, octal ou hexadécimal).

En plus, +INF, -INF, +NAN et -NAN sont reconnus comme étant des nombres en virgule flottante. Le signe (+ ou -) et la capitalisation sont requis.

Non signé (%d, %i, %o, %x, %D, %I, %O, %X, %c, %n)

Un pointeur sur un caractère unsigned, un entier unsigned ou unsigned long peut être utilisé dans n'importe quelle conversion où un caractère, un entier ou un long est autorisé.

Ensembles de recherche (%[...], %[^...])

L'ensemble de caractères entouré de crochets peut être substitué pour le caractère de type s.

L'argument adresse est un pointeur sur un tableau de caractères (char arg[]).

Ces crochets entourent un ensemble de caractères qui définit un ensemble de recherche de caractères possibles constituant la chaîne (le champ d'entrée).

Si le premier caractère à l'intérieur des crochets est le signe ^, l'ensemble de recherche est inversé de façon à inclure tous les caractères ASCII, à l'exception de ceux qui figurent entre crochets.

Normalement, le signe ^ sera inclus dans l'ensemble de recherche inversé, sauf spécification explicite quelque part après le premier signe ^.

Le champ d'entrée est une chaîne non délimitée par un espace (blanc). ...scanf lit le champ d'entrée correspondant jusqu'au premier caractère ne figurant pas dans l'ensemble de recherche (ou dans l'ensemble de recherche inversé).

Règles relatives aux intervalles des ensembles de recherche

1. Le caractère précédant le tiret (-) doit être lexicalement inférieur à celui qui le suit.

2. Le tiret ne doit pas être le premier ou le dernier caractère de l'ensemble. S'il est le premier ou le dernier, il est considéré comme un caractère tiret et non comme un définisseur d'intervalle.

3. Les caractères figurant de chaque côté du tiret doivent être les extrémités de l'intervalle et ne doivent pas faire partie d'un autre intervalle.

Voir aussi