std::fgetc, std::getc

From cppreference.com
< cpp‎ | io‎ | c
 
 
 
C-style I/O
Types and objects
Functions
File access
Direct input/output
Unformatted input/output
fgetcgetc
(until C++14)
Formatted input
(C++11)(C++11)(C++11)    
(C++11)(C++11)(C++11)    
 
Defined in header <cstdio>
int fgetc( std::FILE* stream );
int getc( std::FILE* stream );

Reads the next character from the given input stream.

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 std::feof()) on stream. If the failure has been caused by some other error, sets the error indicator (see std::ferror()) on stream.

Example

#include <cstdio>
#include <cstdlib>
 
int main()
{
    int is_ok = EXIT_FAILURE;
    FILE* fp = std::fopen("/tmp/test.txt", "w+");
    if (!fp)
    {
        std::perror("File opening failed");
        return is_ok;
    }
 
    int c; // Note: int, not char, required to handle EOF
    while ((c = std::fgetc(fp)) != EOF) // Standard C I/O file reading loop
        std::putchar(c);
 
    if (std::ferror(fp))
        std::puts("I/O error when reading");
    else if (std::feof(fp))
    {
        std::puts("End of file reached successfully");
        is_ok = EXIT_SUCCESS;
    }
 
    std::fclose(fp);
    return is_ok;
}

Output:

End of file reached successfully

See also

(deprecated in C++11)(removed in C++14)
reads a character string from stdin
(function)
writes a character to a file stream
(function)
puts a character back into a file stream
(function)
C documentation for fgetc, getc