Est-ce que getchar () est équivalent à scanf (“% c”) et putchar () est équivalent à printf (“% c”)?

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.