Namespaces
Variants
Views
Actions

fgetc, getc

From cppreference.com
< c‎ | io
Revision as of 06:07, 1 May 2014 by Newatthis (Talk | contribs)

Defined in header <stdio.h>
int fgetc( FILE *stream );
int getc( FILE *stream );

Reads the next character from the given input stream. getc() may be implemented as a macro.

Contents

Parameters

stream - to read the character from

Return value

The obtained character on success or EOF on failure.

If the failure has been caused by end-of-file condition, additionally sets the eof indicator (see feof()) on stream. If the failure has been caused by some other error, sets the error indicator (see ferror()) on stream.

Example

fgetc with error checking

#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    FILE* tmpf = tmpfile();
    fputs("abcde\n", tmpf);
 
    rewind(tmpf);
 
    int ch;
    while ((ch=fgetc(tmpf)) != EOF)   /* read/print characters including newline */
          printf("%c", ch);
 
    /* Test reason for reaching EOF. */
    if (feof(tmpf))          /* if failure caused by end-of-file condition */
       puts("End of file reached");
    else if (ferror(tmpf))   /* if failure caused by some other error      */
         {
            perror("fgetc()");
            fprintf(stderr,"fgetc() failed in file %s at line # %d\n", __FILE__,__LINE__-9);
            exit(EXIT_FAILURE);
         }
 
    return EXIT_SUCCESS;
}

Output:

abcde
End of file reached

See also

(until C11)(since C11)
reads a character string from stdin
(function) [edit]
writes a character to a file stream
(function) [edit]
puts a character back into a file stream
(function) [edit]
C++ documentation for fgetc, getc