push a character back onto an input stream
#include <stdio.h> int ungetc( int c, FILE *fp );
The ungetc() function pushes the character specified by c back onto the input stream pointed to by fp. This character will be returned by the next read on the stream. The pushed-back character is discarded if a call is made to the fflush() function or to a file-positioning function (fseek(), fsetpos() or rewind()) before the next read operation is performed.
Only one character (the most recent one) of pushback is remembered.
The ungetc() function clears the end-of-file indicator, unless the value of c is EOF.
The character pushed back.
#include <stdio.h> #include <ctype.h> void main() { FILE *fp; int c; long value; fp = fopen( "file", "r" ); value = 0; c = fgetc( fp ); while( isdigit(c) ) { value = value*10 + c - '0'; c = fgetc( fp ); } ungetc( c, fp ); /* put last character back */ printf( "Value=%ld\n", value ); fclose( fp ); }
ANSI
Safety: | |
---|---|
Interrupt handler | No |
Signal handler | No |
Thread | Yes |
fflush(), fgetc(), fgetchar(), fgets(), fopen(), fseek(), fsetpos(), getc(), getchar(), gets(), rewind(), ungetch()