Réponse 1:

La différence est l'espace. L'espace, dans une chaîne au format scanf, est un caractère de contrôle qui lui demande d'entrer une lecture en boucle et de supprimer tous les caractères successifs du flux d'entrée pour lesquels isspace () renvoie true (espaces, lignes de fin, tabulations).

De nombreuses conversions scanf, telles que% d ou% s, ignorent automatiquement les espaces de tête, mais pas% c,% [ou% n


Réponse 2:
7.21.6.2 La fonction fscanf5. Une directive composée de caractère (s) d'espace blanc est exécutée en lisant l'entrée jusqu'au premier caractère non blanc (qui reste non lu), ou jusqu'à ce qu'aucun autre caractère ne puisse être lu. La directive n'échoue jamais. Les caractères d'espace blanc en entrée (comme spécifié par la fonction isspace) sont ignorés, sauf si la spécification inclut un spécificateur [, c ou n.