2010-03-20 9 views

Respuesta

7

En general, sí, son lo mismo.

Pero no son algunas de las formas más quisquillosas. La función getchar se escribe para devolver int y no char. Esto se hace para que getchar pueda todos los posibles valores char y, además, los códigos de error.

Así, mientras que los siguientes felizmente compila en la mayoría de los compiladores que son esencialmente de truncar distancia un mensaje de error

char c = getchar(); 

La función scanf, sin embargo, le permite utilizar un tipo char directa y se separa el código de error en el valor de retorno

+1

No mensajes de error (como en, plural), " solo "EOF". Pero de lo contrario, esto es correcto. También se debe decir que getchar() es mucho más eficiente que scanf(), porque la biblioteca no tiene que analizar la cadena de formato (y el enlazador no tiene que vincular en el bloque grande de código que es scanf ()). – DevSolar

1

Hacen lo mismo aquí. Sin embargo, si sabe que solo está haciendo caracteres, entonces getchar y putchar serán más eficientes, ya que las variantes printf y scanf tendrán que analizar la cadena cada vez para determinar cómo procesar su solicitud. Además, pueden ser llamados en una biblioteca de nivel inferior, lo que significa que no es necesario tener el printf/scanf vinculado si no se necesitan en otro lugar.