getc, getwc
Lit un caractère à partir d'un flux de données.
int getc(
FILE *stream
);
wint_t getwc(
FILE *stream
);
Paramètres
- stream
Flux d'entrée.
Valeur de retour
Retourne le caractère lu. Pour indiquer une erreur de lecture ou une condition fin de fichier, getc retourne EOF, et getwc retourne WEOF. Pour getc, utilisez ferror ou feof afin de repérer d'éventuelles erreurs ou la fin du fichier. Si stream est NULL, getc et getwc fait appel à un gestionnaire de paramètres invalides, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, ces fonctions retournent EOF (or WEOF forgetwc) et définissent errno avec la valeur EINVAL.
Consultez _doserrno, errno, _sys_errlist et _sys_nerr pour plus d'informations sur ces éléments et autres codes d'erreur.
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 indiquer le caractère suivant. Le fichier est associé à cet élément stream.
Ces fonctions verrouillent le thread appelant et sont donc thread-safe. Pour une version non verrouillante, consultez _getc_nolock, _getwc_nolock.
Les remarques concernant les routines sont indiquées dans la suite.
Routine |
Remarques |
---|---|
getc |
Identique à fgetc, mais implémenté en tant qu'une fonction et sa macro. |
getwc |
Version à caractères larges de getc. Lit un caractère multioctet ou un caractère large selon la manière dont stream est ouvert dans le mode texte ou binaire. |
Mappages de routines de texte générique
Routine TCHAR.H |
_UNICODE & _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_gettc |
getc |
getc |
getwc |
Configuration requise
Routine |
En-tête requis |
---|---|
getc |
<stdio.h> |
getwc |
<stdio.h> ou <wchar.h> |
Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.
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.