SCANF |
Balayage de format |
---|---|
Langage C++ | cstdio (stdio.h) |
Syntaxe
int scanf(const *format,...) |
Paramètres
Nom | Description | |
---|---|---|
format | Ce paramètre permet d'indiquer le format contenant l'expression à traiter : | |
Spécificateur | Description | |
%c | Ce spécificateur permet d'indiquer qu'il faut lire un simple caractère. | |
%d | Ce spécificateur permet d'indiquer qu'il faut lire un entier décimal. | |
%i | Ce spécificateur permet d'indiquer qu'il faut lire un entier. | |
%e | Ce spécificateur permet d'indiquer qu'il faut lire un nombre à virgule flottante. | |
%f | Ce spécificateur permet d'indiquer qu'il faut lire un nombre à virgule flottante. | |
%g | Ce spécificateur permet d'indiquer qu'il faut lire un nombre à virgule flottante. | |
%o | Ce spécificateur permet d'indiquer qu'il faut lire un nombre octal. | |
%s | Ce spécificateur permet d'indiquer qu'il faut lire une chaîne de caractères. | |
%x | Ce spécificateur permet d'indiquer qu'il faut lire un nombre hexadécimal. | |
%p | Ce spécificateur permet d'indiquer qu'il faut lire un pointeur. | |
%n | Ce spécificateur permet d'indiquer qu'il faut lire une valeur entière égale au nombre de caractères lus jusqu'à sa limite. | |
%u | Ce spécificateur permet d'indiquer qu'il faut lire un nombre naturel (entier non-signé) | |
%[ ] | Ce spécificateur permet d'indiquer qu'il faut lire un ensemble de caractères. | |
%% | Ce spécificateur permet d'indiquer qu'il faut lire un caractère de symbole de pourcentage. |
Description
Cette fonction permet la lecture de texte suivant un certain format dans une console standard.
Remarques
- La fonction scanf() est une routine d'entrée à usage général lisant le flux de données stdin (entrée standard) et entrepose les informations dans les variables pointées dans sa liste de paramètres. Il peut lire tous les types de données intégrés et les convertir automatiquement au format interne approprié. La chaîne de caractères contrôle pointée par format se compose de trois classifications de caractères : spécificateurs de format, caractères d'espace blanc et caractères non blancs.
- Les spécificateurs de format d'entrée commencent par un signe «%» et indiquent à la fonction scanf() quel type de données doit être lu ensuite. Par exemple, %s lit une chaîne de caractères tandis que %d lit un entier. La chaîne de caractères de format est lue de gauche à droite et les spécificateurs de format sont mis en correspondance, dans l'ordre, avec les paramètres composant la liste de paramètres.
- Pour lire un entier long, placez un l (ell) devant le spécificateur de format. Pour lire un entier court, mettez un h devant le spécificateur de format. Ces modificateurs peuvent être utilisés avec les codes de format d, i, o, u et x.
- Par défaut, les spécificateurs f, e et g demandent à scanf() d'affecter des données à une valeur flottante. Si vous placez un l (ell) devant l'un de ces spécificateurs, la fonction scanf() affecte les données à un double. L'utilisation d'un L indique à scanf() que la variable recevant les données est un long double.
- Si vous utilisez un compilateur moderne prenant en charge les fonctionnalités de caractères larges ajoutées en 1995, vous pouvez utiliser le modificateur l avec le code de format c pour indiquer un pointeur sur un caractère Unicode de type wchar_t. Vous pouvez également utiliser le modificateur l avec le code de format s pour indiquer un pointeur sur une chaîne de caractères Unicode. Le l peut également être utilisé pour modifier un ensemble de balayage pour indiquer des caractères Unicode.
- Un caractère d'espace blanc dans la chaîne de caractères de formatage fait que scanf() ignore un ou plusieurs caractères d'espace blanc dans le flux de données d'entrée. Un caractère d'espace blanc est un espace, un caractère de tabulation ou une nouvelle ligne. Essentiellement, un caractère d'espace blanc dans la chaîne de caractères de contrôle amènera scanf() à lire, mais pas à entreposer, n'importe quel nombre (y compris zéro) de caractères d'espace blanc jusqu'au premier caractère non blanc.
- Un caractère non-espace blanc dans la chaîne de caractères de format oblige scanf() à lire et à supprimer un caractère correspondant. Par exemple, %d, %d oblige scanf() à lire d'abord un entier, puis à lire et à supprimer une virgule, et enfin à lire un autre entier. Si le caractère spécifié n'est pas trouvé, scanf() se terminera.
- Toutes les variables utilisées pour recevoir des valeurs via scanf() doivent être passées par leurs adresses. Cette situation signifie que tous les paramètres doivent être des pointeurs.
- La fonction scanf() renvoie un nombre égal au nombre de champs auxquels des valeurs ont été attribuées avec succès. Ce nombre n'inclura pas les champs ayant été lus mais non attribués car le modificateur * a été utilisé pour supprimer l'affectation. Un EOF est renvoyé si une erreur se produit avant l'attribution du premier champ.
Exemple
Voici un exemple permettant de demander de poser une question :
Essayer maintenant !
on obtiendra le résultat suivant :
Entrer une votre message (max 255 caracteres) :Voir également
Langage de programmation - C++ - Référence de procédures et fonctions - atof
Langage de programmation - C++ - Référence de procédures et fonctions - getc
Langage de programmation - C++ - Référence de procédures et fonctions - printf
Langage de programmation - C - Référence de procédures et fonctions - scanf
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 734.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 219.
Dernière mise à jour : Lundi, le 3 août 2015