Quand ...scanf arrête l'analyse

De RAD Studio
Aller à : navigation, rechercher

Remonter à scanf, wscanf


Une fonction ...scanf peut arrêter l'analyse d'un champ d'entrée particulier avant d'atteindre le caractère fin-de-champ (espace blanc) normal, ou elle peut se terminer en ayant tout analysé.

Arrêter et passer au champ d'entrée suivant

Les diverses fonctions ...scanf arrêtent l'analyse et le stockage du champ d'entrée en cours et passent au champ suivant si un des événements suivants survient :

  • Un caractère de précision (*) apparaît après le % dans le spécificateur de format. Le champ d'entrée en cours est analysé mais n'est pas stocké.
  • Les caractères width ont été lus.
  • La lecture du caractère suivant ne peut pas être convertie sous le format en cours (par exemple, un A quand le format est décimal).
  • Le caractère suivant du champ d'entrée n'apparaît pas dans l'ensemble de recherche (ou apparaît dans un ensemble de recherche inversé).

Quand scanf arrête l'analyse du champ d'entrée en cours pour une de ces raisons, elle suppose que le caractère suivant n'est pas lu et est :

  • Le premier caractère du champ d'entrée suivant, ou
  • Le premier caractère d'une opération de lecture ultérieure sur l'entrée.

Terminer

Les fonctions ...scanf se termineront sous les circonstances suivantes :

  • Le caractère suivant du champ d'entrée entre en conflit avec un caractère non espace blanc correspondant dans la chaîne de format.
  • Le caractère suivant du champ d'entrée est EOF.
  • La chaîne de format a été épuisée.

Si une séquence de caractères ne faisant pas partie d'un spécificateur de format se trouve dans la chaîne de format, elle doit correspondre à la séquence de caractères en cours du champ d'entrée.

...Les fonctions ...scanf analyseront mais ne stockeront pas les caractères en correspondance.

Quand un caractère en conflit se produit, il reste dans le champ d'entrée comme si la fonction ...scanf ne l'avait jamais lu.


Voir aussi