Est-getchar () équivalent à scanf ( « % c ») et putchar () équivalent à printf ( « % c »)?

StackOverflow https://stackoverflow.com/questions/2482634

  •  21-09-2019
  •  | 
  •  

Question

est a = getchar() équivalent à scanf("%c",&a);?

est équivalent à putchar(a) printf("%c",a);a est une variable char?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top