_snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l_snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l

Lit des données mises en forme d’une longueur spécifiée à partir d’une chaîne.Reads formatted data of a specified length from a string. Ces versions de _snscanf, _snscanf_l, _snwscanf, _snwscanf_l intègrent les améliorations de sécurité décrites dans Fonctionnalités de sécurité dans le CRT.These are versions of _snscanf, _snscanf_l, _snwscanf, _snwscanf_l with security enhancements as described in Security Features in the CRT.

SyntaxeSyntax

int __cdecl _snscanf_s(
   const char * input,
   size_t length,
   const char * format [, argument_list]
);
int __cdecl _snscanf_s_l(
   const char * input,
   size_t length,
   const char * format,
   locale_t locale [, argument_list]
);
int __cdecl _snwscanf_s(
   const wchar_t * input,
   size_t length,
   const wchar_t * format [, argument_list]
);
int __cdecl _snwscanf_s_l(
   const wchar_t * input,
   size_t length,
   const wchar_t * format,
   locale_t locale [, argument_list]
);

ParamètresParameters

inputinput
Chaîne d’entrée à examiner.Input string to examine.

lengthlength
Nombre de caractères à examiner dans l' entrée.Number of characters to examine in input.

formatformat
Un ou plusieurs spécificateurs de format.One or more format specifiers.

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

argument_listargument_list
Arguments facultatifs à assigner selon la chaîne de format.Optional arguments to be assigned according to the format string.

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.Both 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. La valeur de retour est EOF pour une erreur ou si la fin de la chaîne est atteinte avant la première conversion.The return value is EOF for an error or if the end of the string is reached before the first conversion. Pour plus d’informations, consultez sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.For more information, see sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.

Si l' entrée ou le format est un pointeur null , le gestionnaire de paramètres non valides est appelé, comme décrit dans validation de paramètre.If input 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.

Pour obtenir des informations sur ces codes d’erreur et les autres, consultez _doserrno, errno, _sys_errlist et _sys_nerr.For information about these and other error codes, see _doserrno, errno, _sys_errlist, and _sys_nerr.

NotesRemarks

Cette fonction est similaire à sscanf_s , à ceci près qu’elle permet de spécifier un nombre fixe de caractères à examiner à partir de la chaîne d’entrée.This function is like sscanf_s except that it provides the ability to specify a fixed number of characters to examine from the input string. Pour plus d’informations, consultez sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.For more information, see sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.

Le paramètre de taille de mémoire tampon est requis avec les caractères de champ de type c, c, s, set [ .The buffer size parameter is required with the type field characters c, C, s, S, and [. Pour plus d’informations, consultez Caractères du champ de type printf.For more information, see scanf Type Field Characters.

Notes

Le paramètre size est de type unsigned, et non size_t.The size parameter is of type unsigned, not size_t.

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 and _MBCS not defined _MBCS défini_MBCS defined _UNICODE défini_UNICODE defined
_sntscanf_s_sntscanf_s _snscanf_s_snscanf_s _snscanf_s_snscanf_s _snwscanf_s_snwscanf_s
_sntscanf_s_l_sntscanf_s_l _snscanf_s_l_snscanf_s_l _snscanf_s_l_snscanf_s_l _snwscanf_s_l_snwscanf_s_l

Configuration requiseRequirements

RoutineRoutine En-tête requisRequired header
_snscanf_s, _snscanf_s_l_snscanf_s, _snscanf_s_l <stdio.h><stdio.h>
_snwscanf_s, _snwscanf_s_l_snwscanf_s, _snwscanf_s_l <stdio.h> ou <wchar.h><stdio.h> or <wchar.h>

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

ExemplesExample

// crt_snscanf_s.c
// This example scans a string of
// numbers, using both the character
// and wide character secure versions
// of the snscanf function.

#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_s( str1, 6,  "%s %f", s1, 3, &fp);
    printf_s("_snscanf_s converted %d fields: ", i);
    printf_s("%s and %f\n", s1, fp);

    i = _snwscanf_s( str2, 6,  L"%s %f", s2, 3, &fp);
    wprintf_s(L"_snwscanf_s converted %d fields: ", i);
    wprintf_s(L"%s and %f\n", s2, fp);
}
_snscanf_s converted 2 fields: 15 and 12.000000
_snwscanf_s converted 2 fields: 15 and 12.000000

Voir aussiSee also

Spécification de largeur scanfscanf Width Specification