Getchar () equivalente a scanf ("%c") e putchar () equivalente a printf ("%c")?
Pergunta
É a = getchar()
equivalente a scanf("%c",&a);
?
É putchar(a)
equivalente a printf("%c",a);
Onde a
é um char
variável?
Solução
De um modo geral, sim, eles são iguais.
Mas eles não são de algumas maneiras notáveis. A função getchar
é digitado para retornar int
e não char
. Isso é feito para que getchar
Ambos podem tudo possível char
valores e códigos de erro adicionalmente.
Portanto, enquanto o seguinte compila alegremente na maioria dos compiladores, você está truncando essencialmente uma mensagem de erro
char c = getchar();
A função scanf
, porém, permite que você use um char
Digite diretamente e separa o código de erro no valor de retorno.
Outras dicas
Eles fazem a mesma coisa aqui. No entanto, se você sabe que está apenas fazendo personagens então getchar
e putchar
será mais eficiente, pois o printf
e scanf
As variantes terão que analisar a string a cada vez para determinar como processar sua solicitação. Além disso, eles podem ser chamados em uma biblioteca de nível inferior, o que significa que você pode não ter que ter o printf
/scanf
ligado se eles não forem necessários em outro lugar.