¿Es a = getchar()
equivalente a scanf("%c",&a);
?¿Es getchar() equivalente a scanf ("% c") y putchar() equivalente a printf ("% c")?
Es putchar(a)
equivalente a printf("%c",a);
donde a
es una variable char
?
¿Es a = getchar()
equivalente a scanf("%c",&a);
?¿Es getchar() equivalente a scanf ("% c") y putchar() equivalente a printf ("% c")?
Es putchar(a)
equivalente a printf("%c",a);
donde a
es una variable char
?
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
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
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.
También vea http://stackoverflow.com/questions/2507082/getc-vs-getchar-vs-scanf-for-reading-a-character-from-stdin – Lazer