RAD Studio
ContentsIndex
PreviousUpNext
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  

#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) 2008 CodeGear(TM). All Rights Reserved.
What do you think about this topic? Send feedback!