C++ getc()

The getc() function in C++ reads the next character from the given input stream. It can be implemented as macro.

getc() prototype

int getc(FILE* stream);

The getc() function takes a file stream as its argument and returns the next character from the given stream as a integer type.

Difference between getc() and fgetc()

The getc() and fgetc() functions in C++ are almost similar. However there are some differences between them.

The getc() function can be implemented as a macro whereas fgetc() function can not be used as macro.

Also getc() function is highly optimized and hence calls to fgetc() probably take longer than calls to getc(). So, getc() is preferred in most situations.

It is defined in <cstdio> header file.

getc() Parameters

stream: The file stream to read the character.

getc() Return value

  • On success, the getc() function returns the read character.
  • On failure it returns EOF.
    • If the failure is caused due to end of file, it sets the eof indicator.
    • If the failure is caused by other errors, it sets the error indicator.

Example: How getc() function works

#include <cstdio>

int main()
{
    int c;
    FILE *fp;
    
    fp = fopen("file.txt","r");
    
    if (fp)
    {
        while(feof(fp) == 0)
        {
            c = getc(fp);
            putchar(c);
        }
    }
    else
        perror("File opening failed");
    fclose(fp);
    return 0;
}

When you run the program, a possible output will be:

Hello World!