C fgetc() function

C library function - fgetc()

The fgetc() function is used to read a single unsigned character from the input stream at the current position and increases the associated file pointer, if any, so that it points to the next character.


int fgetc(FILE *stream)


Name Description Required /Optional
stream Identifies an address for a file descriptor, which is an area of memory associated with an input or output stream. Required

Return value

  • Upon successful completion, fgetc() shall return the next byte from the input stream pointed to by stream.
  • If the end-of-file indicator for the stream is set, or if the stream is at end-of-file, the end-of-file indicator for the stream shall be set and fgetc() shall return EOF.

Example: fgetc() function

The following example gathers a line of input from a stream:

#include <stdio.h>
#define  MAX_LEN  80 
int main(void)
   FILE *stream;
   char buffer[MAX_LEN + 1];
   int i, c;
   stream = fopen("test.txt","r");
   for (i = 0; (i < (sizeof(buffer)-1) &&
         ((c = fgetc(stream)) != EOF) && (c != '\n')); i++)
      buffer[i] = c;
   buffer[i] = '\0';
   if (fclose(stream))
      perror("fclose error");
   printf("Text from the file : %s\n", buffer);


Text from the file : C Language.

C Programming Code Editor:

Previous C Programming: C sscanf()
Next C Programming: C fgets()

Share this Tutorial / Exercise on : Facebook and Twitter

C Programming: Tips of the Day

What's an object file in C?

An object file is the real output from the compilation phase. It's mostly machine code, but has info that allows a linker to see what symbols are in it as well as symbols it requires in order to work. (For reference, "symbols" are basically names of global objects, functions, etc.)

A linker takes all these object files and combines them to form one executable (assuming that it can, i.e.: that there aren't any duplicate or undefined symbols). A lot of compilers will do this for you (read: they run the linker on their own) if you don't tell them to "just compile" using command-line options. (-c is a common "just compile; don't link" option.)

Ref : https://bit.ly/3CbzF8M