_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é.