Partager via


_snscanf, _snscanf_l, _snwscanf, _snwscanf_l

Lit des données mises en forme d’une longueur spécifiée à partir d’une chaîne. Des versions plus sécurisées de ces fonctions sont disponibles ; voir , , _snwscanf_s_snscanf_s_l, _snwscanf_s_l._snscanf_s

Syntaxe

int __cdecl _snscanf(
   const char * input,
   size_t length,
   const char * format,
   ...
);
int __cdecl _snscanf_l(
   const char * input,
   size_t length,
   const char * format,
   _locale_t locale,
   ...
);
int __cdecl _snwscanf(
   const wchar_t * input,
   size_t length,
   const wchar_t * format,
   ...
);
int __cdecl _snwscanf_l(
   const wchar_t * input,
   size_t length,
   const wchar_t * format,
   _locale_t locale,
   ...
);

Paramètres

input
Chaîne d’entrée à examiner.

length
Nombre de caractères à examiner dans input.

format
Un ou plusieurs spécificateurs de format.

...
Variables facultatives qui seront utilisées pour stocker les valeurs extraites de la chaîne d’entrée par les spécificateurs de format dans format.

locale
Paramètres régionaux à utiliser.

Valeur retournée

Ces deux fonctions retournent le nombre de champs correctement convertis et affectés ; la valeur de retour n’inclut pas les champs qui ont été lus mais qui n’ont pas été affectés. La valeur de retour 0 indique qu'aucun champ n'a été assigné. La valeur de retour est EOF en cas d’erreur ou si la fin de la chaîne est atteinte avant la première conversion. Pour plus d’informations, consultez sscanf.

S’il input s’agit d’un formatNULL pointeur ou s’il length est inférieur ou égal à zéro, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l'exécution est autorisée à se poursuivre, ces fonctions retournent EOF et définissent errno avec la valeur EINVAL.

Pour plus d’informations sur ces codes d’erreur et d’autres codes d’erreur, consultez , , _sys_errlist_doserrnoet _sys_nerr.errno

Notes

Cette fonction est semblable sscanf, sauf qu’elle vous permet de spécifier un nombre fixe de caractères à examiner à partir de la chaîne d’entrée. Pour plus d’informations, consultez sscanf.

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.

Mappages de routine de texte générique

Routine Tchar.h _UNICODE et _MBCS non défini _MBCS Défini _UNICODE Défini
_sntscanf _snscanf _snscanf _snwscanf
_sntscanf_l _snscanf_l _snscanf_l _snwscanf_l

Spécifications

Routine En-tête requis
_snscanf, _snscanf_l <stdio.h>
_snwscanf, _snwscanf_l <stdio.h> ou <wchar.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

// crt_snscanf.c
// compile with: /W3

#include <stdio.h>
int main( )
{
   char  str1[] = "15 12 14...";
   wchar_t  str2[] = L"15 12 14...";
   char  s1[3];
   wchar_t  s2[3];
   int   i;
   float fp;

   i = _snscanf( str1, 6,  "%s %f", s1, &fp); // C4996
   // Note: _snscanf is deprecated; consider using _snscanf_s instead
   printf("_snscanf converted %d fields: ", i);
   printf("%s and %f\n", s1, fp);

   i = _snwscanf( str2, 6,  L"%s %f", s2, &fp); // C4996
   // Note: _snwscanf is deprecated; consider using _snwscanf_s instead
   wprintf(L"_snwscanf converted %d fields: ", i);
   wprintf(L"%s and %f\n", s2, fp);
}
_snscanf converted 2 fields: 15 and 12.000000
_snwscanf converted 2 fields: 15 and 12.000000

Voir aussi

Spécification de largeur scanf