Différence clé - scanf vs gets
Une fonction est un ensemble d'instructions permettant d'effectuer une tâche spécifique. Sans écrire toutes les instructions dans le même programme, il peut être divisé en plusieurs fonctions. En programmation, l'utilisateur peut définir ses propres fonctions. Il existe également des fonctions fournies par les langages de programmation. Le langage C fournit un certain nombre de fonctions, de sorte que le programmeur peut les utiliser directement sans les implémenter dès le début. Deux de ces fonctions fournies par le langage C sont scanf et gets. Cet article traite de la différence entre ces deux fonctions. La principale différence entre scanf et gets est que scanf finit de prendre une entrée lorsqu'il rencontre un espace, une nouvelle ligne ou une fin de fichier (EOF), tandis que gets considère un espace comme faisant partie de la chaîne d'entrée et termine l'entrée lorsqu'il rencontre une nouvelle ligne ou EOF.
Qu'est-ce que scanf ?
La fonction scanf peut lire les entrées du clavier et les stocker en fonction du spécificateur de format donné. Il lit l'entrée jusqu'à rencontrer un espace, une nouvelle ligne ou un EOF. La syntaxe est la suivante.
scanf("chaîne de format", liste d'adresse des variables);
Reportez-vous à l'exemple ci-dessous pour comprendre le scanf.
Figure 01: scanf avec une entrée
Selon le programme ci-dessus, l'entrée obtenue du clavier est un entier, donc le spécificateur de format est %d. S'il obtient une valeur de caractère, le spécificateur de format est %c. Si vous obtenez une valeur à virgule flottante, le spécificateur de format est %f. La valeur d'entrée reçue doit être stockée dans la variable numérique. Par conséquent, l'adresse du numéro de variable est transmise à la fonction scanf. Maintenant, la variable numérique contient la valeur donnée par l'utilisateur à partir du clavier. Enfin, nous pouvons imprimer la variable numérique pour vérifier la valeur.
Il est également possible de recevoir plus d'une valeur à la fois.
Figure 02: scanf avec plusieurs entrées
Les entrées reçues sont stockées dans les variables numéro1 et numéro2. Les valeurs peuvent être vérifiées en utilisant printf.
Qu'est-ce que ça donne ?
La fonction gets utilise pour recevoir une entrée du clavier jusqu'à ce qu'elle rencontre une nouvelle ligne ou un EOF. L'espace blanc est considéré comme faisant partie de l'entrée. La syntaxe de la fonction gets est la suivante.
gets("où stocker la chaîne");
S'il y a une erreur lors de la réception de la chaîne, la fonction gets renverra une valeur nulle.
Reportez-vous à l'exemple ci-dessous,
Figure 03: obtient
L'entrée est reçue par la fonction gets et stockée dans la variable word1. Si le programmeur a utilisé scanf au lieu de gets et saisi une chaîne telle que "hello world", scanf lira la chaîne comme deux chaînes à cause des espaces. Mais gets le lira comme une chaîne "hello world".
Quelles sont les similitudes entre scanf et gets ?
- Les deux sont des fonctions fournies par le langage de programmation C.
- Les deux doivent inclure le fichier d'en-tête stdio.h pour utiliser ces fonctions.
- Les deux peuvent être utilisés pour obtenir une entrée depuis l'entrée standard.
Quelle est la différence entre scanf et gets ?
scanf vs gets |
|
scanf est une fonction C pour lire l'entrée depuis l'entrée standard jusqu'à ce qu'elle rencontre un espace, une nouvelle ligne ou un EOF. | gets est une fonction C pour lire l'entrée de l'entrée standard jusqu'à rencontrer une nouvelle ligne ou EOF. Il considère les espaces blancs comme faisant partie de l'entrée. |
Syntaxe | |
scanf fonction prend la chaîne de format et la liste des adresses des variables. par exemple. scanf("%d", &nombre); | gets function prend le nom de la variable pour stocker la valeur reçue. Par exemple. obtient(nom); |
Flexibilité | |
scanf peut lire plusieurs valeurs de différents types de données. | gets() n'obtiendra que les données de la chaîne de caractères. |
Résumé – scanf vs gets
scanf et gets sont des fonctions fournies par le langage de programmation C. L'utilisateur n'a pas besoin d'implémenter ces fonctions depuis le début. Ils peuvent les utiliser directement dans leurs programmes. La différence entre scanf et gets est que scanf cesse de prendre une entrée lorsqu'il rencontre un espace, une nouvelle ligne ou une fin de fichier (EOF) et obtient considère un espace comme faisant partie de la chaîne d'entrée et termine l'entrée lorsqu'il rencontre une nouvelle ligne ou EOF. L'utilisation de scanf ou de gets dépend de la façon dont l'utilisateur reçoit l'entrée de l'entrée standard qui est le clavier la plupart du temps. scanf est plus flexible que gets.
Télécharger la version PDF de scanf vs gets
Vous pouvez télécharger la version PDF de cet article et l'utiliser à des fins hors ligne conformément à la note de citation. Veuillez télécharger la version PDF ici Différence entre scanf et gets