Est-ce que a = getchar()
équivaut à scanf("%c",&a);
?Est-ce que getchar() est équivalent à scanf ("% c") et putchar() est équivalent à printf ("% c")?
Est-putchar(a)
équivalent à printf("%c",a);
où a
est une variable char
?
Est-ce que a = getchar()
équivaut à scanf("%c",&a);
?Est-ce que getchar() est équivalent à scanf ("% c") et putchar() est équivalent à printf ("% c")?
Est-putchar(a)
équivalent à printf("%c",a);
où a
est une variable char
?
D'une manière générale, oui, ils sont identiques.
Mais ils ne sont pas de quelques manières nitpicky. La fonction getchar
est tapée pour renvoyer int
et non char
. Ceci est fait de sorte que getchar
peut à la fois toutes les valeurs char
possibles et en plus 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 char
directement et sépare le code d'erreur dans la valeur de retour.
Pas de messages d'erreur (comme, pluriel), " seulement "EOF. Mais sinon, c'est correct. Il faut dire aussi que getchar() est beaucoup plus efficace que scanf(), car la librairie n'a pas besoin d'analyser la chaîne de format (et l'éditeur de liens n'a pas besoin de lier dans le gros bloc de code qui est scanf ()). – DevSolar
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, puisque les variantes printf
et scanf
devront analyser la chaîne à chaque fois pour déterminer comment traiter votre requête. De plus, ils peuvent être appelés dans une bibliothèque de niveau inférieur, ce qui signifie que vous n'aurez peut-être pas besoin d'associer printf
/scanf
s'ils ne sont pas nécessaires ailleurs.
Voir aussi http://stackoverflow.com/questions/2507082/getc-vs-getchar-vs-scanf-for-reading-a-character-from-stdin – Lazer