Partager via


type de caractères scanf de champ

Les informations suivantes s'appliquent à scanf l'un des la famille de fonctions, notamment les versions sécurisées, telles qu' scanf_s.

Le caractère d' type est le seul champ obligatoire de format ; il apparaît après tous les champs facultatifs de format.Le caractère d' type détermine si l'argument associé est interprète comme un caractère, chaîne, ou nombre.

Caractères de type pour les fonctions de scanf

Caractère

Type d'entrée attendu

type d'argument

Redimensionnez l'argument dans la version sécurisée ?

c

CharacterEn cas de utilisation avec scanf s'exécute, spécifie le caractère codé sur un octet ; en cas de utilisation avec wscanf s'exécute, spécifie le caractère élargi.Les espaces blancs qui sont couramment ignorés sont lus lorsque c est spécifié.Pour lire le caractère codé sur un octet suivant autres que des espaces blancs, utilisez %1s; pour lire le caractère élargi suivant autres que des espaces blancs, utilisez %1ws.

Le pointeur à char en cas de utilisation avec scanf s'exécute, pointeur vers wchar_t en cas de utilisation avec wscanf s'exécute.

Obligatoire.La taille n'inclut pas l'espace pour une marque de fin null.

C

Caractère inverse de taille.En cas de utilisation avec scanf s'exécute, spécifie le caractère élargi ; en cas de utilisation avec wscanf s'exécute, spécifie le caractère codé sur un octet.Les espaces blancs qui sont couramment ignorés sont lus lorsque C est spécifié.Pour lire le caractère codé sur un octet suivant autres que des espaces blancs, utilisez %1s; pour lire le caractère élargi suivant autres que des espaces blancs, utilisez %1ws.

Le pointeur à wchar_t en cas de utilisation avec scanf s'exécute, pointeur vers char en cas de utilisation avec wscanf s'exécute.

Obligatoire.L'argument de taille n'inclut pas l'espace pour une marque de fin null.

d

entier décimal.

Pointeur vers int.

Non.

i

Entier.Hexadécimal si la chaîne d'entrée commence par « 0x » ou « 0X », octal si la chaîne commence par « 0 ", sinon décimale.

Pointeur vers int.

Non.

o

entier octal.

Pointeur vers int.

Non.

u

entier décimal non signé.

Pointeur vers unsignedint.

Non.

x

entier hexadécimal.

Pointeur vers int.

Non.

e, E, f, g, G

Valeur à virgule flottante qui se compose du signe facultatif (+ ou -), séries d'un ou plusieurs chiffres décimaux contenant la virgule décimale, et de l'exposant facultatif (« e » ou « E ») suivie facultativement d'une valeur entière signée.

Pointeur vers float.

Non.

n

aucune lecture d'entrée de flux de données ou de mémoire tampon.

Le pointeur à int, dans lequel est le numéro enregistré de caractères avec succès lit à partir de le flux de données ou met en mémoire tampon jusqu'ici dans l'appel actuel aux fonctions d' scanf ou wscanf s'exécute.

Non.

s

Chaîne, jusqu ' à le premier caractère d'espace blanc (espace, onglet ou saut de ligne).Pour lire des chaînes non délimitées par des espaces, ensemble d'utilisation de crochets ([ ]), comme indiqué dans spécification de la largeur de scanf.

En cas de utilisation avec scanf s'exécute, signifie le jeu de caractères codés sur un seul octet ; en cas de utilisation avec wscanf s'exécute, signifie l'ensemble de caractères.Dans les deux cas, le tableau de caractères doit être assez grand pour un champ d'entrée plus le caractère NULL de fin, qui est automatiquement ajouté.

Obligatoire.La taille inclut l'espace pour une marque de fin null.

S

chaîne de caractères d'Opposé-taille, jusqu ' à le premier caractère d'espace blanc (espace, onglet ou saut de ligne).Pour lire des chaînes non délimitées par des espaces, ensemble d'utilisation de crochets ([ ]), comme indiqué dans spécification de la largeur de scanf.

En cas de utilisation avec scanfs'exécute, signifie le jeu de caractères ; en cas de utilisation avec wscanfs'exécute, signifie l'ensemble de caractères.Dans les deux cas, le tableau de caractères doit être assez grand pour un champ d'entrée plus le caractère NULL de fin, qui est automatiquement ajouté.

Obligatoire.La taille inclut l'espace pour une marque de fin null.

Les spécificateurs d' a et d' A (consultez type de caractères printf de champ) ne sont pas disponibles avec scanf.

Les arguments de taille doivent être passés, si nécessaire, dans la liste de paramètres qui suit immédiatement l'argument elles s'appliquent à.Par exemple, le code suivant :

char string1[11], string2[9];
scanf("%10s %8s", string1, 11, string2, 9);

lit une chaîne d'une longueur maximale de 10 dans string1, et une chaîne d'une longueur maximale de 8 dans string2.Les tailles de mémoire tampon doivent être au moins un de plus que les caractéristiques de largeur dans la mesure où l'espace doit être réservé pour le terminateur null.

La chaîne de format peut gérer l'entrée codée sur un octet ou à caractères larges que le caractère codé sur un octet ou la version à caractère élargi de la fonction est utilisé.Ainsi, pour lire codé sur un octet ou des caractères élargis avec les fonctions d' scanf et des fonctions d' wscanf , spécificateurs de format d'utilisation comme suit.

Le caractère de lecture comme

utilisez cette fonction

avec ces spécificateurs de format

octet unique

Fonctions scanf

c, hc ou hC

octet unique

Fonctions wscanf

C, hc ou hC

large

Fonctions wscanf

c, lc ou lC

large

Fonctions scanf

C, lc ou lC

Pour analyser des chaînes avec des fonctions d' scanf , et les fonctions d' wscanf , utilisez le tableau ci-dessus à l'aide de type-spécificateurs s et S de format au lieu d' c et d' C.

Voir aussi

Référence

scanf, _scanf_l, wscanf, _wscanf_l