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. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.
Generische Textroutinzuordnungen
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.
Ausgabe
Input was: Line one.
Siehe auch
Stream-E/A
fgetc
, fgetwc
_getch
, _getwch
putc
, putwc
ungetc
, ungetwc
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für