ungetc
From cppreference.com
Defined in header
<stdio.h>
|
||
int ungetc( int ch, FILE *stream );
|
||
Puts the character ch
back to the given file stream.
Contents |
[edit] Parameters
ch | - | character to be put back |
stream | - | file stream to put the character back to |
[edit] Return value
On success ch
is returned.
On failure EOF is returned and the given stream remains unchanged.
[edit] Example
ungetc with error checking
Run this code
#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
[edit] See also
gets a character from a file stream (function) |
|
C++ documentation for ungetc
|