Est-ce a = getchar()
équivalent à scanf("%c",&a);
?
Est-ce que putchar(a)
équivalent à printf("%c",a);
où est une variable char
?
D’une manière générale oui, ils sont les mêmes.
Mais ils ne sont pas de quelques manières acerbes. La fonction getchar
est typée pour renvoyer int
et non char
. Ceci est fait pour que getchar
puisse à la fois toutes les valeurs de caractères possibles et en plus des codes d’erreur.
Ainsi, alors que ce qui suit comstack avec bonheur dans la plupart des compilateurs, vous tronquez essentiellement un message d’erreur
char c = getchar();
La fonction scanf
, cependant, vous permet d’utiliser directement un type char
et de séparer le code d’erreur en valeur de retour.
Ils font la même chose ici. Cependant, si vous savez que vous ne faites que des caractères, alors getchar
et putchar
seront plus efficaces, car les variantes printf
et scanf
devront parsingr 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, ce qui signifie que vous ne devrez peut-être pas relier printf
/ scanf
s’ils ne sont pas utilisés ailleurs.