Freigeben über


getc, getwc

Liest ein Zeichen aus einem Stream.

Syntax

int getc(
   FILE *stream
);
wint_t getwc(
   FILE *stream
);

Parameter

stream
Eingabestream

Rückgabewert

Gibt das gelesene Zeichen zurück. Zum Anzeigen eines Lesefehlers oder einer Dateiendebedingung gibt getcEOF zurück, und getwc gibt WEOF zurück. Verwenden Sie für getcferror oder feof zur Fehler- oder Dateiendeüberprüfung. Ist stream das NULLgetc der Parameter, und getwc rufen Sie den ungültigen Parameterhandler auf, wie in der Parameterüberprüfung beschrieben. Wenn die Ausführung fortgesetzt werden darf, geben diese Funktionen (oder WEOF für getwc) zurück EOF und legen sie errno auf EINVAL.

Weitere Informationen zu Rückgabecodes finden Sie unter , , _doserrno, _sys_errlistund _sys_nerr.errno

Hinweise

Jede Routine liest ein einzelnes Zeichen aus einer Datei an der aktuellen Position und erhöht den zugeordneten Dateizeiger (wenn definiert), um auf das nächste Zeichen zu zeigen. Die Datei ist stream zugeordnet.

Diese Funktionen sperren den aufrufenden Thread und sind daher threadsicher. Eine nicht sperrende Version finden Sie unter _getc_nolock, _getwc_nolock.

Es folgen routinespezifische Hinweise.

Routine Hinweise
getc Genau so wie fgetc, jedoch als Funktion und Makro implementiert.
getwc Breitzeichenversion von getc. Liest ein Multibytezeichen oder Breitzeichen, je nachdem, ob stream im Textmodus oder im Binärdateimodus geöffnet ist.

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.

Mapping generischer Textroutinen

TCHAR.H-Routine _UNICODE und _MBCS nicht definiert _MBCS definiert _UNICODE definiert
_gettc getc getc getwc

Anforderungen

Routine Erforderlicher Header
getc <stdio.h>
getwc <stdio.h> oder <wchar.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// crt_getc.c
// Use getc to read a line from a file.

#include <stdio.h>

int main()
{
    char buffer[81];
    int i, ch;
    FILE* fp;

    // Read a single line from the file "crt_getc.txt".

    fopen_s(&fp, "crt_getc.txt", "r");
    if (!fp)
    {
       printf("Failed to open file crt_getc.txt.\n");
       exit(1);
    }

    for (i = 0; (i < 80) && ((ch = getc(fp)) != EOF)
                         && (ch != '\n'); i++)
    {
        buffer[i] = (char) ch;
    }

    // Terminate string with a null character
    buffer[i] = '\0';
    printf( "Input was: %s\n", buffer);

    fclose(fp);
}

Eingabe: crt_getc.txt

Line one.
Line two.

Output

Input was: Line one.

Weitere Informationen

Stream-E/A
fgetc, fgetwc
_getch, _getwch
putc, putwc
ungetc, ungetwc