Scanf

Définition - Que signifie Scanf?

Dans le langage de programmation C, scanf est une fonction qui lit les données formatées à partir de stdin (c'est-à-dire le flux d'entrée standard, qui est généralement le clavier, à moins d'être redirigé) puis écrit les résultats dans les arguments donnés.

Cette fonction appartient à une famille de fonctions qui ont les mêmes fonctionnalités mais ne diffèrent que par leur source de données. Par exemple, fscanf obtient son entrée à partir d'un flux de fichiers, tandis que sscanf obtient son entrée à partir d'une chaîne.

Definir Tech explique Scanf

La fonction scanf a le prototype / signature suivant:

int scanf (const char * format, ...);

  • int (entier) est le type de retour
  • format est une chaîne qui contient le ou les spécificateurs de type (voir ci-dessous)
  • "..." (points de suspension) indique que la fonction accepte un nombre variable d'arguments; chaque argument doit être une adresse mémoire dans laquelle le résultat converti est écrit

Un spécificateur de type simple se compose d'un symbole de pourcentage (%) et d'un caractère alpha qui indique le type. Voici quelques exemples des spécificateurs de type reconnus par scanf:

  • % c - Caractère
  • % d - Entier signé
  • % x - Entier non signé au format hexadécimal
  • % f - virgule flottante
  • % s - Chaîne

La fonction fonctionne en lisant l'entrée du flux d'entrée standard, puis analyse le contenu de «format» pour tout spécificateur de format, en essayant de faire correspondre les deux. En cas de succès, la fonction écrit le résultat dans le ou les arguments passés.

Par exemple, si l'appel de fonction est

scanf ("% c% d", & var1, & var2);

et l'utilisateur tape "a1", la fonction écrira "a" dans "var1" et "1" dans "var2". Si l'appel de fonction, cependant, est

scanf ("% x", & var);

la même entrée sera lue comme le nombre hexadécimal "a1", qui est 161 en décimal.

La fonction renvoie la valeur suivante:

  • > 0 - Le nombre d'éléments convertis et attribués avec succès.
  • 0 - Aucun élément n'a été attribué.
  • <0 - Erreur de lecture rencontrée ou fin de fichier (EOF) atteinte avant toute affectation.