Defined in header <stdio.h> | ||
---|---|---|
int ungetc( int ch, FILE *stream ); |
Puts the character ch
back to the given file stream.
Parameters
ch | - | character to be put back |
stream | - | file stream to put the character back to |
Return value
On success ch
is returned.
On failure EOF
is returned and the given stream remains unchanged.
Example
ungetc with error checking.
#include <stdio.h> #include <stdlib.h> int main(void) { FILE* fp = fopen("test.txt", "w"); fputs("abc\n", fp); fclose(fp); fp = fopen("test.txt", "r"); /* Read "abc". */ /* Write "abbc". */ char ch; int ret_code; ch=fgetc(fp); /* read 'a' */ putchar(ch); ch=fgetc(fp); /* read 'b' */ putchar(ch); ret_code = ungetc(ch,fp); /* push 'b' back to input file */ /* Test whether EOF was reached. */ if (ret_code == EOF) if (ferror(fp)) { perror("ungetc()"); fprintf(stderr,"ungetc() failed in file %s at line # %d\n", __FILE__,__LINE__-6); exit(EXIT_FAILURE); } ch=fgetc(fp); /* reread 'b' */ putchar(ch); ch=fgetc(fp); /* read 'c' */ putchar(ch); return EXIT_SUCCESS; }
Output:
abbc
References
- C11 standard (ISO/IEC 9899:2011):
- 7.21.7.10 The ungetc function (p: 334)
- C99 standard (ISO/IEC 9899:1999):
- 7.19.7.11 The ungetc function (p: 300)
- C89/C90 standard (ISO/IEC 9899:1990):
- 4.9.7.11 The ungetc function
See also
gets a character from a file stream (function) | |
C++ documentation for ungetc |
Please login to continue.