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 getc
EOF
zurück, und getwc
gibt WEOF
zurück. Verwenden Sie für getc
ferror
oder feof
zur Fehler- oder Dateiendeüberprüfung. Ist stream
das NULL
getc
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_errlist
und _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