fscanf, _fscanf_l, fwscanf, _fwscanf_lfscanf, _fscanf_l, fwscanf, _fwscanf_l

Lisent les données mises en forme d’un flux.Read formatted data from a stream. Il existe des versions plus sécurisées de ces fonctions. Consultez fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l.More secure versions of these functions are available; see fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l.

SyntaxeSyntax

int fscanf(
   FILE *stream,
   const char *format [,
   argument ]...
);
int _fscanf_l(
   FILE *stream,
   const char *format,
   locale_t locale [,
   argument ]...
);
int fwscanf(
   FILE *stream,
   const wchar_t *format [,
   argument ]...
);
int _fwscanf_l(
   FILE *stream,
   const wchar_t *format,
   locale_t locale [,
   argument ]...
);

ParamètresParameters

streamstream
Pointeur désignant la structure FILE.Pointer to FILE structure.

formatformat
Chaîne de contrôle de format.Format-control string.

argumentargument
Arguments facultatifs.Optional arguments.

localelocale
Paramètres régionaux à utiliser.The locale to use.

Valeur de retourReturn Value

Chacune de ces fonctions retourne le nombre de champs correctement convertis et assignés. La valeur de retour n’inclut pas les champs qui ont été lus, mais pas assignés.Each of these functions returns the number of fields successfully converted and assigned; the return value does not include fields that were read but not assigned. La valeur de retour 0 indique qu'aucun champ n'a été assigné.A return value of 0 indicates that no fields were assigned. Si une erreur se produit ou si la fin du flux de fichier est atteinte avant la première conversion, la valeur de retour est EOF pour fscanf et fwscanf.If an error occurs, or if the end of the file stream is reached before the first conversion, the return value is EOF for fscanf and fwscanf.

Ces fonctions valident leurs paramètres.These functions validate their parameters. Si Stream ou format est un pointeur null, le gestionnaire de paramètres non valides est appelé, comme décrit dans validation de paramètre.If stream or format is a null pointer, the invalid parameter handler is invoked, as described in Parameter Validation. Si l’exécution est autorisée à se poursuivre, ces fonctions retournent EOF et attribuent à errno la valeur EINVAL.If execution is allowed to continue, these functions return EOF and set errno to EINVAL.

NotesRemarks

La fonction fscanf lit les données à partir de la position actuelle du flux dans les emplacements donnés par argument (le cas échéant).The fscanf function reads data from the current position of stream into the locations given by argument (if any). Chaque argument doit être un pointeur vers une variable d’un type qui correspond à un spécificateur de type au format.Each argument must be a pointer to a variable of a type that corresponds to a type specifier in format. le format contrôle l’interprétation des champs d’entrée et a les mêmes forme et fonction que l’argument format pour scanf; pour obtenir une description du format, consultez scanf .format controls the interpretation of the input fields and has the same form and function as the format argument for scanf; see scanf for a description of format.

fwscanf est une version à caractères larges de fscanf; l’argument format de fwscanf est une chaîne de caractères larges.fwscanf is a wide-character version of fscanf; the format argument to fwscanf is a wide-character string. Ces fonctions se comportent de la même façon si le flux est ouvert en mode ANSI.These functions behave identically if the stream is opened in ANSI mode. fscanf ne prend pas actuellement en charge l’entrée d’un flux Unicode.fscanf doesn't currently support input from a UNICODE stream.

Les versions de ces fonctions avec le suffixe _L sont identiques, sauf qu’elles utilisent les paramètres régionaux passés au lieu des paramètres régionaux du thread actuel.The versions of these functions with the _l suffix are identical except that they use the locale parameter passed in instead of the current thread locale.

Mappages de routines de texte génériqueGeneric-Text Routine Mappings

Routine TCHAR.HTCHAR.H routine _UNICODE et _MBCS non définis_UNICODE & _MBCS not defined _MBCS défini_MBCS defined _UNICODE défini_UNICODE defined
_ftscanf_ftscanf fscanffscanf fscanffscanf fwscanffwscanf
_ftscanf_l_ftscanf_l _fscanf_l_fscanf_l _fscanf_l_fscanf_l _fwscanf_l_fwscanf_l

Pour plus d’informations, consultez champs de spécification de format-fonctions scanf et fonctions wscanf.For more information, see Format Specification Fields - scanf functions and wscanf Functions.

Configuration requiseRequirements

FonctionFunction En-tête requisRequired header
fscanf, _fscanf_lfscanf, _fscanf_l <stdio.h><stdio.h>
fwscanf, _fwscanf_lfwscanf, _fwscanf_l <stdio.h> ou <wchar.h><stdio.h> or <wchar.h>

Pour plus d'informations sur la compatibilité, voir Compatibilité.For additional compatibility information, see Compatibility.

ExempleExample

// crt_fscanf.c
// compile with: /W3
// This program writes formatted
// data to a file. It then uses fscanf to
// read the various data back from the file.

#include <stdio.h>

FILE *stream;

int main( void )
{
   long l;
   float fp;
   char s[81];
   char c;

   if( fopen_s( &stream, "fscanf.out", "w+" ) != 0 )
      printf( "The file fscanf.out was not opened\n" );
   else
   {
      fprintf( stream, "%s %ld %f%c", "a-string",
               65000, 3.14159, 'x' );
      // Security caution!
      // Beware loading data from a file without confirming its size,
      // as it may lead to a buffer overrun situation.

      // Set pointer to beginning of file:
      fseek( stream, 0L, SEEK_SET );

      // Read data back from file:
      fscanf( stream, "%s", s );   // C4996
      fscanf( stream, "%ld", &l ); // C4996

      fscanf( stream, "%f", &fp ); // C4996
      fscanf( stream, "%c", &c );  // C4996
      // Note: fscanf is deprecated; consider using fscanf_s instead

      // Output data read:
      printf( "%s\n", s );
      printf( "%ld\n", l );
      printf( "%f\n", fp );
      printf( "%c\n", c );

      fclose( stream );
   }
}
a-string
65000
3.141590
x

Voir aussiSee also

E/S de fluxStream I/O
_cscanf, _cscanf_l, _cwscanf, _cwscanf_l_cscanf, _cscanf_l, _cwscanf, _cwscanf_l
fprintf, _fprintf_l, fwprintf, _fwprintf_lfprintf, _fprintf_l, fwprintf, _fwprintf_l
scanf, _scanf_l, wscanf, _wscanf_lscanf, _scanf_l, wscanf, _wscanf_l
sscanf, _sscanf_l, swscanf, _swscanf_lsscanf, _sscanf_l, swscanf, _swscanf_l
fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_lfscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l