Push a character back onto an input stream
#include <stdio.h> int ungetc( int c, FILE *fp );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The ungetc() function pushes the character specified by c back onto the input stream pointed to by fp. This character will be returned the next time that you read from the stream. The pushed-back character is discarded if you call fflush() or a file-positioning function (fseek(), fsetpos(), or rewind()) before performing the next read operation.
Only one character (the most recent one) of pushback is guaranteed.
The ungetc() function clears the end-of-file indicator, unless the value of c is EOF.
The character pushed back.
#include <stdio.h> #include <stdlib.h> #include <ctype.h> int main( void ) { 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 ); return EXIT_SUCCESS; }
Safety: | |
---|---|
Cancellation point | Yes |
Interrupt handler | No |
Signal handler | No |
Thread | Yes |
fopen(), getc(), getc_unlocked(), ungetwc()