sirve que para leer funciona funcion dev como cadenas c character scanf getchar getc

que - leer cadenas en c scanf



getc Vs getchar Vs Scanf para leer un personaje de stdin (2)

de la guía de programación de C de Beej

Todas estas funciones de una forma u otra, leen un solo carácter desde la consola o desde un ARCHIVO. Las diferencias son bastante menores, y aquí están las descripciones:

getc () devuelve un carácter del ARCHIVO especificado. Desde un punto de vista de uso, es equivalente a la misma llamada fgetc (), y fgetc () es un poco más común de ver. Sólo la implementación de las dos funciones difiere.

fgetc () devuelve un carácter del ARCHIVO especificado. Desde un punto de vista de uso, es equivalente a la misma llamada getc (), excepto que fgetc () es un poco más común de ver. Sólo la implementación de las dos funciones difiere.

Sí, hice trampa y usé cut-n-paste para hacer ese último párrafo.

getchar () devuelve un caracter desde stdin. De hecho, es lo mismo que llamar a getc (stdin).

De las tres funciones siguientes:

getc getchar y scanf

¿Cuál es el mejor para leer un personaje de stdin y por qué?

¿Existen desventajas o limitaciones conocidas para cualquiera de estas funciones que hacen que una sea mejor que la otra?


Si simplemente desea leer un solo carácter de stdin, entonces getchar() es la opción adecuada. Si tiene requisitos más complicados, entonces getchar() no será suficiente.

  • getc() permite leer desde un flujo diferente (por ejemplo, uno abierto con fopen() );
  • scanf() permite leer más de un solo carácter a la vez.

El error más común al usar getchar() es intentar usar una variable char para almacenar el resultado. getchar() usar una variable int , ya que el rango de valores que getchar() es "un valor en el rango de caracteres unsigned char , más el único valor negativo EOF ". Una variable char no tiene un rango suficiente para esto, lo que puede significar que puedes confundir un retorno de carácter completamente válido con EOF . Lo mismo se aplica a getc() .