ungetc, ungetwc

Aus RAD Studio
Wechseln zu: Navigation, Suche

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

+

+

+