Notions de base de la fonction scanf () dans la programmation de c

Pour l'entrée de certains types de variables dans le langage de programmation C, vous verrez que la fonction scanf () est très pratique. Il est pas une fonction d'entrée à usage général, et il a quelques limitations, mais il est idéal pour tester le code ou de se saisir des valeurs.

Sommaire

En un sens, on pourrait dire que scanf () est la version d'entrée de la fonction printf (). Par exemple, il utilise les mêmes caractères de conversion (l'espace réservé de-Choses%). A cause de cela, scanf () est tout à fait particulier sur la façon dont le texte est entrée. Voici le format:

#include int scanf (const char * restreindre le format, ...) -

Effrayant, hein? Juste l'ignorer pour le moment. Voici une version moins effrayant du format:

scanf ("espace réservé", variable) -

Dans cette version, espace réservé est un personnage de conversion, et variable est un type de variable qui correspond au caractère de conversion. Sauf si elle est une chaîne (tableau de caractères), la variable est précédé de la opérateur.

La fonction scanf () est un prototype dans le fichier d'en-tête stdio.h, de sorte que vous devez inclure ce fichier lorsque vous utilisez la fonction.

Voici quelques-uns de scanf () exemples:

scanf ("% d", highscore) -

La déclaration précédente lit une valeur entière dans la variable score élevé. Cela suppose que score élevé est une variable d'int.

scanf ("% f", température) -

Les précédentes scanf () attend des états pour une valeur en virgule flottante d'être entrée, qui est ensuite stocké dans le température variable.




scanf ("% c", clavier) -

Dans la ligne précédente, scanf () accepte la première entrée de caractère et la stocke dans la clé variable.

scanf ("% s", prénom) -

L'espace réservé de l'% est utilisé pour lire dans le texte, mais seulement jusqu'à ce que le premier caractère de l'espace blanc est rencontré. Ainsi, un espace ou une tabulation ou la touche Entrée termine la chaîne. (Ça craint.) Aussi, Prénom est un tableau de caractères, de sorte qu'il n'a pas besoin du opérateur dans la fonction scanf ().

Comment lire une chaîne avec scanf ()

Une des façons les plus courantes pour mettre la fonction scanf () à utiliser est à lire dans un bloc de texte à partir de l'entrée standard. Pour répondre à cette fin, le personnage le% de conversion est utilisé - comme dans printf (), mais avec entrée à la place de la production.

Scanf () Avale une STRING

#include int main () {char prénom [15] -printf ("Tapez votre prénom:") -scanf ("% s", prénom) -printf (". Ravi de vous rencontrer,% s n", prénom ) -retour (0) -}

Exercice 1: Tapez le code source à partir de scanf () Avale une chaîne dans un nouveau projet, ex0712, dans Code :: Blocks. Construire et exécuter.

Ligne 5 déclare un tableau de caractères - une variable de chaîne - nommé Prénom. Le chiffre entre parenthèses indique la taille du tableau, ou le nombre total de caractères pouvant être y sont stockées. Le tableau est pas attribué une valeur, il est donc créé vide. Fondamentalement, la déclaration à la ligne 5 met de côté pour le stockage jusqu'à 15 caractères.

La fonction scanf () à la ligne 8 lit une chaîne de l'entrée standard et la stocke dans la Prénom tableau. Le caractère% de conversion dirige scanf () pour chercher une chaîne comme entrée, tout comme% s est un espace réservé pour les chaînes dans printf (s ') sortie.

Exercice 2: Modifiez le code source à partir de scanf () Avale une chaîne de sorte qu'une seconde chaîne est déclarée pour le nom de la personne. Inviter l'utilisateur à leur nom de famille ainsi, puis afficher les noms en utilisant une seule fonction printf ().

  • Le chiffre entre parenthèses (voir la ligne 5) donne la taille du tableau de char, ou la longueur de la chaîne, plus un.

  • Lorsque vous créez un tableau de caractères ou variable de type chaîne, vous assurer que vous créez d'une taille assez grande pour contenir le texte. Ce format devrait être le nombre maximum de caractères, plus un.

  • La raison de l'augmentation de la taille du tableau de caractères par l'un est que toutes les chaînes dans C terminent par un caractère spécifique de la résiliation. Il est le caractère NULL, qui est écrite comme 0. Le compilateur ajoute automatiquement le 0 à la fin de valeurs de chaîne que vous créez dans votre code source, ainsi que texte lu par diverses fonctions de texte entrée.

    Vous devez vous rappeler d'ajouter place pour ce personnage quand vous mettez de côté stockage pour entrée de chaîne.

Comment lire les valeurs avec scanf ()

La fonction scanf () peut faire plus que lire des chaînes. Il peut lire dans la valeur indiquée par un caractère de conversion.

Scanf () EATS un nombre entier

#include main () {int fav-printf int («Quel est votre numéro préféré:") -scanf ("% d", fav) -printf ("!% d est mon numéro préféré, trop n", fav) -Retour (0) -}

Dans scanf () Mange un entier, la fonction scanf () lit une valeur entière. Le caractère% d de conversion est utilisée, tout comme printf () - en effet, il est utilisé dans la ligne 9. Ce caractère dirige scanf () pour chercher une valeur int pour la variable fav.

Exercice 3: Créez un projet, ex0714, en utilisant le code de source indiqué sur scanf () Mange un Integer. Construire et exécuter. Testez le programme en tapant différentes valeurs entières positives et négatives.

Peut-être que vous vous interrogez sur l'esperluette () dans la fonction scanf (). Le personnage est un opérateur C - spécifiquement, le adresse mémoire opérateur. Il est l'une des fonctionnalités avancées en C qui est lié à des pointeurs. Une esperluette doit précéder toute variable spécifiée dans la fonction scanf (). L'exception est un tableau, comme le tableau prénom char dans scanf () Mange un Integer.

Essayez d'exécuter à nouveau le programme, mais aussi spécifier une valeur décimale, comme 41.9, ou taper du texte à la place d'un nombre.

La raison pour laquelle vous voyez une sortie incorrecte est que scanf () est très spécifique. Il récupère uniquement le type variable spécifiée par le caractère de conversion. Donc si vous voulez une valeur en virgule flottante, vous devez spécifier une variable de flotteur et utiliser la conversion appropriée carac-% f, dans ce cas.

Exercice 4: Modifiez le code source à partir de scanf () Mange un entier de sorte qu'un nombre à virgule flottante est demandé, entrée, et affichée.

  • Vous ne devez préfixer une variable de tableau de caractères avec une esperluette dans le fonction- scanf () lors de l'utilisation scanf () pour lire dans une chaîne, il suffit de spécifier le nom de variable de chaîne.

  • La fonction scanf () arrête de lire la saisie de texte sur le premier caractère de l'espace blanc, l'espace, onglet, ou la touche Entrée.


» » » » Notions de base de la fonction scanf () dans la programmation de c