ungetc, ungetwc
Nach oben zu stdio.h - Index
Header-Datei
stdio.h
Kategorie
Eingabe-/Ausgaberoutinen
Prototyp
int ungetc(int c, FILE *stream);
wint_t ungetwc(wint_t c, FILE *stream);
Beschreibung
Sendet ein Zeichen zurück in den Eingabe-Stream.
Anmerkung: Verwenden Sie diese Funktion nicht in Win32-GUI-Anwendungen.
ungetc sendet das Zeichen c wieder in den angegebenen Eingabe-Stream zurück, der für das Lesen geöffnet sein muss. Dieses Zeichen wird beim nächsten Aufruf von getc oder fread für diesen Stream zurückgegeben. Es kann immer nur ein Zeichen zurückgesendet werden. Durch einen zweiten Aufruf von ungetc ohne zwischenzeitlichen Aufruf von getc wird das vorher zurückgesendete Zeichen überschrieben. Durch einen Aufruf von fflush, fseek, fsetpos oder rewind werden zurückgesendeten Zeichen gelöscht.
Rückgabewert
Wenn erfolgreich, gibt ungetc das zurückgesendete Zeichen zurück.
Bei einem Fehler wird EOF zurückgegeben.
Beispiel
#include <stdio.h>
#include <ctype.h>
int main(void)
{
int i=0;
char ch;
puts("Input an integer followed by a char:");
/* liest Zeichen, bis ein Zeichen gelesen wird, das keine Ziffer ist oder EOF auftritt */
while((ch = getchar()) != EOF && isdigit(ch))
i = 10 * i + ch - 48; /* ASCII in numerischen Wert konvertieren */
/* wird ein Zeichen gelesen wird, das keine Ziffer ist, Zeichen in Puffer zurückstellen */
if (ch != EOF)
ungetc(ch, stdin);
printf("i = %d, next char in buffer = %c\n", i, getchar());
return 0;
}
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
ungetc |
+ |
+ |
+ |
+ |
ungetwc |
+ |
+ |
+ |