Est-getchar () équivalent à scanf ( « % c ») et putchar () équivalent à printf ( « % c »)?
Question
est a = getchar()
équivalent à scanf("%c",&a);
?
est équivalent à putchar(a)
printf("%c",a);
où a
est une variable char
?
La solution
D'une manière générale oui, ils sont les mêmes.
Mais ils ne sont pas quelques façons nitpicky. La getchar
fonction est typé pour revenir int
et non char
. Ceci est fait pour que getchar
peuvent à la fois toutes les valeurs possibles char
et, en outre des codes d'erreur.
Ainsi, alors que le suivant compile avec bonheur dans la plupart des compilateurs vous êtes essentiellement tronquer loin un message d'erreur
char c = getchar();
La fonction scanf
, cependant, vous permet d'utiliser un type de char
directement et sépare le code d'erreur dans la valeur de retour.
Autres conseils
Ils font la même chose ici. Toutefois, si vous savez que vous faites juste des personnages getchar
alors et putchar
sera plus efficace, étant donné que les variantes de printf
et scanf
devront analyser la chaîne chaque fois pour déterminer comment traiter votre demande. De plus, ils peuvent être appelés dans une bibliothèque de niveau inférieur qui signifie que vous ne pouvez pas avoir le printf
/ scanf
liée si elles ne sont pas nécessaires ailleurs.