Algorithme de fscanf

La chaîne format doit se composer d'un ensemble de directives. Il doit y avoir autant de param$_i$ que de directives demandant l'affectation d'une valeur. Si il n'y a pas suffisamment de param$_i$ pour le format, le comportement n'est pas défini. Si il y a davantage de param$_i$ que demandé par le format, les param$_i$ en excès sont évalués mais ils sont inutilisés.

La fonction fscanf exécute dans l'ordre chaque directive du format. Si une directive échoue, la fonction fscanf retourne à l'appelant.

-
L'exécution d'une directive formée de caractères blancs, consiste à consommer dans le flot d'entrée la plus longue séquence possible de caractères blancs. Même si cette séquence est de taille nulle, la directive a réussi.

-
L'exécution d'une directive formée de caractères ordinaires, consiste à consommer dans le flot d'entrée une séquence identique à la directive. Au premier caractère différent, la directive a échoué et ce caractère reste non lu.

-
L'exécution d'une directive formée d'une séquence d'échappement, consiste à :

  1. consommer dans le flot d'entrée la plus longue séquence possible de caractères blancs. Cette séquence peut être de taille nulle. Cette action ne s'applique pas aux formats c, n, ni [.

  2. consommer dans le flot d'entrée la plus longue séquence possible de caractères qui soit conforme au modèle. Si cette séquence est de taille nulle, la directive a échoué.

  3. si la directive ne contient pas le caractère *, convertir la chaîne lue et l'affecter à l'objet pointé par le param$_i$ correspondant. Si cet objet n'est pas de la taille ou du type convenable pour la recevoir, le comportement n'est pas défini.

Matthieu Moy 2017-02-08