fgetc, fgets, getc, getchar, gets, ungetc - input of char­
       acters and strings


       #include <stdio.h>

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


       fgetc() reads the next character from stream  and  returns
       it  as  an  unsigned char cast to an int, or EOF on end of
       file or error.

       getc() is equivalent to fgetc()  except  that  it  may  be
       implemented  as  a  macro which evaluates stream more than

       getchar() is equivalent to getc(stdin).

       gets() reads a line from stdin into the buffer pointed  to
       by  s  until either a terminating newline or EOF, which it
       replaces with '\0'.  No check for buffer overrun  is  per­
       formed (see BUGS below).

       fgets()  reads  in  at  most one less than size characters
       from stream and stores them into the buffer pointed to  by
       s.  Reading stops after an EOF or a newline.  If a newline
       is read, it is stored into the buffer.  A '\0'  is  stored
       after the last character in the buffer.

       ungetc()  pushes  c back to stream, cast to unsigned char,
       where it is  available  for  subsequent  read  operations.
       Pushed  -  back  characters  will  be  returned in reverse
       order; only one pushback is guaranteed.

       Calls to the functions described here can  be  mixed  with
       each  other  and  with calls to other input functions from
       the stdio library for the same input stream.


       fgetc(), getc() and getchar() return the character read as
       an  unsigned  char cast to an int or EOF on end of file or

       gets() and fgets() return s on success, and NULL on  error
       or  when  end of file occurs while no characters have been


       ANSI - C, POSIX.1


       Never use gets().  Because it is impossible to tell  with­
       out knowing the data in advance how many characters gets()
       will read, and because gets() will continue to store char­
       acters past the end of the buffer, it is extremely danger­
       ous to use.  It has been used to break computer  security.
       Use fgets() instead.

       It  is  not advisable to mix calls to input functions from
       the stdio library with low - level calls to read() for the
       file  descriptor  associated  with  the  input stream; the
       results will be undefined and very probably not  what  you


       read(2),  write(2), fopen(3), fread(3), scanf(3), puts(3),
       fseek(3), ferror(3)