getc, getwc
Lesen Sie ein Zeichen von einem Stream.
int getc(
FILE *stream
);
wint_t getwc(
FILE *stream
);
Parameter
- stream
Eingabestream.
Rückgabewert
Gibt das gelesene Zeichen zurück. So einem Lesefehler oder eine Dateiende-Bedingung, getc gibt EOF und getwc gibt WEOF angeben. Verwenden Sie für getcferror oder feof zur Fehler- oder Dateiendeüberprüfung. Wenn streamNULL ist, rufen getc und getwc den ungültigen Parameterhandler auf, wie in Parametervalidierung beschrieben. Wenn die Ausführung zulässig ist, um fortzufahren, diese Funktionen Rückhol- EOF (oder WEOF für getwc) und errno auf EINVAL festlegen.
Weitere Informationen zu diesen und anderen Fehlercodes finden Sie unter _doserrno, errno, _sys_errlist und _sys_nerr.
Hinweise
Jede Routine liest ein einzelnes Zeichen aus einer Datei an der aktuellen Position und erhöht den Zeiger der zugeordneten Datei (wenn Sie definiert werden), um auf dem nächsten Zeichen zu veranschaulichen. Die Datei wird 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 |
Identisch mit fgetc, implementiert jedoch als Funktion und als Makro. |
getwc |
Breitzeichenversion von getc. Liest ein Mehrbytezeichen oder ein Breitzeichen, ob stream im Textmodus oder im Binärdateimodus geöffnet ist. |
Zuordnung generischer Textroutinen
TCHAR.H-Routine |
_UNICODE & _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_gettc |
getc |
getc |
getwc |
Anforderungen
Routine |
Erforderlicher Header |
---|---|
getc |
<stdio.h> |
getwc |
<stdio.h> oder <wchar.h> |
Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.
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.
Ausgabe
Input was: Line one.