RAD Studio |  |

ungetc, ungetwc

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

Copy Code

    #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 |  | + | + | +

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!