fgetc
, fgetwc
Lisent un caractère d’un flux.
Syntaxe
int fgetc(
FILE *stream
);
wint_t fgetwc(
FILE *stream
);
Paramètres
stream
Pointeur vers la structure FILE
.
Valeur retournée
fgetc
retourne le caractère lu en tant que int
ou retourne EOF
pour indiquer une erreur ou la fin du fichier. fgetwc
renvoie, sous la forme d’un wint_t
caractère large qui correspond au caractère lu ou retourné WEOF
pour indiquer une erreur ou une fin de fichier. Pour les deux fonctions, utilisez feof
ou ferror
pour faire la distinction entre une erreur et une condition de fin de fichier. Si une erreur de lecture se produit, l’indicateur d’erreur pour le flux est défini. Si stream
c’est NULL
le fgetc
cas, et fgetwc
appelez le gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres. Si l'exécution est autorisée à se poursuivre, ces fonctions attribuent à errno
la valeur EINVAL
et retournent EOF
.
Notes
Chacune de ces fonctions lit un caractère à partir de la position actuelle du fichier associé à stream
. Ensuite, la fonction incrémente le pointeur de fichier associé (si défini) pour désigner le caractère suivant. Si le flux est à la fin du fichier, l’indicateur de fin de fichier pour le flux est défini.
fgetc
est équivalente à getc
, mais est implémentée uniquement comme une fonction, plutôt que comme une fonction et une macro.
fgetwc
est la version à caractères larges de fgetc
; elle lit c sous la forme d’un caractère multioctet ou d’un caractère large lorsqu’elle stream
est ouverte en mode texte ou en mode binaire, respectivement.
Les versions avec le suffixe _nolock
sont identiques, à ceci près qu’elles ne sont pas protégées contre les interférences par d’autres threads.
Pour plus d’informations sur le traitement des caractères larges et des caractères multioctets dans les modes texte et binaire, consultez les E/S de flux Unicode dans les modes texte et 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 |
---|---|---|---|
_fgettc |
fgetc |
fgetc |
fgetwc |
Spécifications
Fonction | En-tête requis |
---|---|
fgetc |
<stdio.h> |
fgetwc |
<stdio.h> ou <wchar.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// crt_fgetc.c
// This program uses getc to read the first
// 80 input characters (or until the end of input)
// and place them into a string named buffer.
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
FILE *stream;
char buffer[81];
int i, ch;
// Open file to read line from:
fopen_s( &stream, "crt_fgetc.txt", "r" );
if( stream == NULL )
exit( 0 );
// Read in first 80 characters and place them in "buffer":
ch = fgetc( stream );
for( i=0; (i < 80 ) && ( feof( stream ) == 0 ); i++ )
{
buffer[i] = (char)ch;
ch = fgetc( stream );
}
// Add null to end string
buffer[i] = '\0';
printf( "%s\n", buffer );
fclose( stream );
}
Entrée : crt_fgetc.txt
Line one.
Line two.
Sortie
Line one.
Line two.