SSCANF |
Chaine de recherche formaté |
---|---|
Langage C | stdio.h |
Syntaxe
int sscanf(const char *tampon,const *texte,...); |
Paramètres
Nom | Description |
---|---|
tampon | Ce paramètre permet d'indiquer le tampon recevant les données |
texte | Ce paramètre permet d'indiquer le texte à écrire dans le tampon |
Description
Cette fonction permet la lecture de texte suivant un certain format à partir d'un tampon.
Algorithme
MODULE SSCANF(str, format, ...) * Initialiser un compteur pour le nombre de valeurs extraites values_extracted ← 0 * Parcourir la chaîne de caractères de format i ← 0 BOUCLE TANT QUE format[i] ≠ '\0' SI format[i] = '%' ALORS * Détecter le caractère de format suivant i ← i + 1 EVALUER CAS format[i] 'd': * Lire un entier depuis str target ← next_argument_as_pointer() SI parse_integer(str, target) ALORS values_extracted ← values_extracted + 1 SINON * Arrêter en cas d'erreur break FIN SI 'f': * Lire un flottant depuis str target ← next_argument_as_pointer() SI parse_float(str, target) ALORS values_extracted ← values_extracted + 1 SINON * Arrêter en cas d'erreur break FIN SI 's': * Lire une chaîne de caractères target ← next_argument_as_pointer() SI parse_string(str, target) ALORS values_extracted ← values_extracted + 1 SINON * Arrêter en cas d'erreur break FIN SI AUTREMENT * Gérer d'autres spécificateurs si nécessaire * (par exemple, %c, %x, etc.) FIN EVALUER CAS SINON * Ignorer les caractères fixes dans le format SI ↑str ≠ format[i] ALORS * Erreur de correspondance break FIN SI str ← str + 1 FIN SI i ← i + 1 FIN BOUCLE TANT QUE * Retourner le nombre de valeurs extraites avec succès RETOURNE values_extracted |
Remarques
- Cette fonction est équivalente scanf sauf qu'utilise une chaîne de caractères plutôt que l'entrée standard (stdin).
- Cette fonction attend une séquence de pointeurs comme paramètres supplémentaires, chacun pointant vers un objet du type spécifié par la balise «%» correspondant dans la chaîne de caractères de format, dans l'ordre respectif.
- Si vous souhaitez entreposer le résultat d'une instruction «sscanf» dans une variable régulière, vous devrez faire précéder son identificateur de l'opérateur de référence (&).
Exemple
Voici un exemple permettant d'extraire trois valeurs d'une chaine de caractères :
Essayer maintenant !
on obtiendra le résultat suivant :
N1 = 7N2 = 4
S1 = Bonjour
Voir également
Langage de programmation - C - Référence de procédures et fonctions - fscanf
Langage de programmation - C - Référence de procédures et fonctions - scanf
Langage de programmation - C++ - Référence de procédures et fonctions - sscanf
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 250.
Dernière mise à jour : Mardi, le 28 juillet 2015