ungetc, ungetwc
Go Up to stdio.h Index
Header File
stdio.h
Category
Input/output Routines
Prototype
int ungetc(int c, FILE *stream);
wint_t ungetwc(wint_t c, FILE *stream);
Description
Pushes a character back into input stream.
Note: Do not use this function in Win32 GUI applications.
ungetc pushes the character c back onto the named input stream, which must be open for reading. This character will be returned on the next call to getc or fread for that stream. One character can be pushed back in all situations. A second call to ungetc without a call to getc will force the previous character to be forgotten. A call to fflush, fseek, fsetpos, or rewind erases all memory of any pushed-back characters.
Return Value
On success, ungetc returns the character pushed back.
On error, it returns EOF.
Example
#include <stdio.h> #include <ctype.h> int main( void ) { int i=0; char ch; puts("Input an integer followed by a char:"); /* read chars until non digit or EOF */ while((ch = getchar()) != EOF && isdigit(ch)) i = 10 * i + ch - 48; /* convert ASCII into int value */ /* if non digit char was read, push it back into input buffer */ if (ch != EOF) ungetc(ch, stdin); printf("i = %d, next char in buffer = %c\n", i, getchar()); return 0; }
Portability
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
ungetc |
+ |
+ |
+ |
+ |
ungetwc |
+ |
+ |
+ |