Pergunta

É a = getchar() equivalente a scanf("%c",&a);?

É putchar(a) equivalente a printf("%c",a); Onde a é um char variável?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top