gets






fgetc, fgets, getc, getchar, gets, ungetc − entrada de
caracteres y cadenas de ellos


#include<stdio.h>

);int fgetc(FILE *flujo
, int char *fgets(char *s
);int getc(FILE *flujo
int getchar(void);
);char *gets(char *s
, FILE *int ungetc(int c

fgetc() lee el siguiente carácter de flujo y lo devuelve
como un unsignedchar modelado a un o EOF al llegar al final
del flujo o en caso de error.

     getc() es equivalente a fgetc() excepto en el hecho de
que puede estar implementado como una macro que evalúe
flujo más de una vez.

     getchar() es equivalente a )getc(stdin

     una lÃnea de stdin y la guarda en el búfer al que
apunta s hasta que se encuentre bien un carácter terminador
nueva‐lÃnea, bien al cual reemplaza con No se hace ninguna
comprobación de desbordamiento del búfer (vea FALLOS más
abajo).

     fgets() lee como mucho uno menos de tam caracteres del
flujo y los guarda en el búfer al que apunte La lectura se
para tras un EOF o una nueva‐lÃnea. Si se lee una nueva‐lÃ‐
nea, se guarda en el búfer. Tras el último carácter en el
búfer se guarda un

     ungetc() pone c de vuelta en modelado a donde queda
disponible para una posterior operación de lectura. Los
caracteres puestos en el flujo serán devueltos en orden
inverso; sólo se garantiza que se pueda devolver al flujo
un carácter.

     Las llamadas a las funciones descritas aquà pueden
mezclarse unas con otras y con llamadas a otras funciones de
entrada de la biblioteca stdio para el mismo flujo de
entrada.

     Para las versiones no‐bloqueantes, véase

devuelven el carácter leÃdo como un unsignedchar modelado a
un int o EOF al llegar al final de la entrada o en caso de
error.

     devuelven s en caso de éxito, y NULL en caso de error
o cuando se llegue al final del fichero mientras que no se









                             ‐2‐


haya leÃdo ningún carácter.

     ungetc() devuelve c en caso de éxito, o EOF en caso de
error.

ANSI ‐ C, POSIX.1

No use nunca Puesto que es imposible saber, sin conocer de
antemano los datos, cuántos caracteres va a leer y puesto
que gets() continuará guardando caracteres una vez
alcanzado el final del búfer, su empleo es extremadamente
peligroso. Muchas veces ha sido utilizado para comprometer
la seguridad de un sistema. En su lugar emplee fgets()
siempre que pueda.

     No es recomendable mezclar llamadas a las funciones de
entrada de la biblioteca stdio con llamadas de bajo nivel a
read() para el descriptor de fichero asociado con el flujo
de entrada; los resultados serán indefinidos y
probablemente no los deseados.