On this page
getchar
Defined in header <stdio.h> | 
      ||
|---|---|---|
 | 
      
Reads the next character from stdin.
Parameters
(none)
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 stdin. If the failure has been caused by some other error, sets the error indicator (see ferror()) on stdin.
Example
Demonstrates getchar with error checking
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    for (int ch; (ch = getchar()) != EOF;) // read/print "abcde" from stdin
        printf("%c", ch);
 
    // Test reason for reaching EOF.
    if (feof(stdin)) // if failure caused by end-of-file condition
        puts("End of file reached");
    else if (ferror(stdin)) // if failure caused by some other error
    {
        perror("getchar()");
        fprintf(stderr, "getchar() failed in file %s at line # %d\n",
                __FILE__, __LINE__ - 9);
        exit(EXIT_FAILURE);
    }
 
    return EXIT_SUCCESS;
}
   Possible output:
abcde
End of file reached
   References
- C23 standard (ISO/IEC 9899:2023):
 - 7.21.7.6 The getchar function (p: TBD)
 - C17 standard (ISO/IEC 9899:2018):
 - 7.21.7.6 The getchar function (p: TBD)
 - C11 standard (ISO/IEC 9899:2011):
 - 7.21.7.6 The getchar function (p: 332)
 - C99 standard (ISO/IEC 9899:1999):
 - 7.19.7.6 The getchar function (p: 298)
 - C89/C90 standard (ISO/IEC 9899:1990):
 - 4.9.7.6 The getchar function
 
See also
| gets a character from a file stream  (function)  | 
     |
C++ documentation for getchar | 
     |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
 https://en.cppreference.com/w/c/io/getchar