Partager via


_snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l

données mises en forme de lectures d'une longueur spécifiée d'une chaîne.Ce sont des versions de _snscanf, _snscanf_l, _snwscanf, _snwscanf_l avec des améliorations de sécurité comme décrit dans Fonctionnalités de sécurité du CRT.

int __cdecl _snscanf_s(
   const char * input,
   size_t length,
   const char * format,
   ...
);
int __cdecl _snscanf_s_l(
   const char * input,
   size_t length,
   const char * format,
   locale_t locale,
   ...
);
int __cdecl _snwscanf_s(
   const wchar_t * input,
   size_t length,
   const wchar_t * format,
   ...
);
int __cdecl _snwscanf_s_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.

  • ... (optional)
    Les variables qui seront utilisées pour stocker les valeurs que vous avez extrait de la chaîne d'entrée par les spécificateurs de format de format.

  • locale
    Les paramètres régionaux à utiliser.

Valeur de retour

Ces deux fonctions retourne le nombre de champs avec succès convertis et assignés ; la valeur de retour n'inclut pas les champs qui ont été lus mais non assigné.une valeur de retour de 0 indique qu'aucun champ n'a été assigné.La valeur de retour est EOF pour une erreur ou si la fin de la chaîne est atteint avant la première conversion.Pour plus d'informations, consultez sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.

si input ou format est un pointeur d' NULL , le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution de se poursuivre, ces fonctions EOF de retour et errno défini à EINVAL.

Pour plus d'informations sur ces éléments et d'autres codes d'erreur, consultez _doserrno, errno, _sys_errlist, et _sys_nerr.

Notes

Cette fonction est comme sscanf_s excepté qu'elle offre la possibilité de spécifier un nombre fixe de caractères pour examiner de la chaîne d'entrée.Pour plus d'informations, consultez sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.

Le paramètre de taille de mémoire tampon est requis par les caractères de champ de type c, C, s, S, et [.Pour plus d'informations, consultez type de caractères scanf de champ.

[!REMARQUE]

le paramètre de taille est de type unsigned, pas size_t.

Les versions de ces fonctions par le suffixe d' _l sont identiques mais elles utilisent le paramètre de paramètres régionaux passé au lieu des paramètres régionaux du thread courant.

mappages de routines de texte générique

routine de Tchar.h

_UNICODE et _MBCS non définis

_MBCS défini

_UNICODE défini

_sntscanf_s

_snscanf_s

_snscanf_s

_snwscanf_s

_sntscanf_s_l

_snscanf_s_l

_snscanf_s_l

_snwscanf_s_l

Configuration requise

routine

en-tête requis

_snscanf_s, _snscanf_s_l

<stdio.h>

_snwscanf_s, _snwscanf_s_l

<stdio.h> ou <wchar.h>

Pour plus d'informations de compatibilité, consultez compatibilité dans l'introduction.

Exemple

// 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);
}
  

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez l' exemples d'appel de code non managé.

Voir aussi

Référence

spécification de la largeur de scanf