getc
, getwc
Lisent un caractère d’un flux.
Syntaxe
int getc(
FILE *stream
);
wint_t getwc(
FILE *stream
);
Paramètres
stream
Flux d’entrée.
Valeur retournée
Retourne le caractère lu. Pour indiquer une erreur ou une condition de fin de fichier, getc
retourne EOF
, tandis que getwc
retourne WEOF
. Pour getc
, utilisez ferror
ou feof
pour tester la présence d’une erreur ou la fin du fichier. Si stream
c’est NULL
le getc
cas, et getwc
appelez le gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à continuer, ces fonctions retournent EOF
(ou WEOF
pour getwc
) et définissent la EINVAL
valeur errno
.
Pour plus d’informations sur les codes de retour, consultez , , _sys_errlist
_doserrno
et _sys_nerr
.errno
Notes
Chaque routine lit un caractère à partir d’un fichier à la position actuelle et incrémente le pointeur de fichier associé (si défini) pour qu’il désigne le caractère suivant. Le fichier est associé à stream
.
Ces fonctions verrouillent le thread appelant et sont donc thread-safe. Pour obtenir une version non verrouillée, consultez _getc_nolock
, _getwc_nolock
.
Voici une série de notes spécifiques aux routines.
Routine | Notes |
---|---|
getc |
Identique à fgetc , mais implémentée en tant que fonction et que macro. |
getwc |
Version à caractères larges de getc . Lit un caractère multioctet ou large selon que stream est ouvert en mode texte ou binaire. |
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Mappages de routines de texte générique
Routine TCHAR.H | _UNICODE et _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_gettc |
getc |
getc |
getwc |
Spécifications
Routine | En-tête requis |
---|---|
getc |
<stdio.h> |
getwc |
<stdio.h> ou <wchar.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// 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);
}
Entrée : crt_getc.txt
Line one.
Line two.
Sortie
Input was: Line one.
Voir aussi
E/S de flux
fgetc
, fgetwc
_getch
, _getwch
putc
, putwc
ungetc
, ungetwc