Partager via


_cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l

Lit les données mises en forme à partir de la console. Ces versions plus sécurisées de , , _cscanf_l_cwscanfont _cwscanf_l des améliorations de sécurité, comme décrit dans les fonctionnalités de sécurité dans le CRT._cscanf

Important

Cette API ne peut pas être utilisée dans les applications qui s’exécutent dans le Windows Runtime. Pour plus d’informations, consultez Fonctions CRT non prises en charge dans les applications de la plateforme Windows universelle.

Syntaxe

int _cscanf_s(
   const char *format [,
   argument] ...
);
int _cscanf_s_l(
   const char *format,
   _locale_t locale [,
   argument] ...
);
int _cwscanf_s(
   const wchar_t *format [,
   argument] ...
);
int _cwscanf_s_l(
   const wchar_t *format,
   _locale_t locale [,
   argument] ...
);

Paramètres

format
Chaîne de contrôle de format.

argument
Paramètres facultatifs.

locale
Paramètres régionaux à utiliser.

Valeur retournée

Le nombre de champs qui ont été correctement convertis et assigné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 est EOF pour une tentative de lecture à la fin du fichier. Une EOF valeur peut également être retournée lorsque l’entrée du clavier est redirigée au niveau de la ligne de commande du système d’exploitation. Une valeur de retour de zéro signifie qu’aucun champ n’a été affecté.

Ces fonctions valident leurs paramètres. S’il format s’agit d’un pointeur Null, ces fonctions appellent le gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à continuer, ces fonctions retournent EOFet errno sont définies sur EINVAL.

Notes

La fonction _cscanf_s lit les données directement à partir de la console dans les emplacements donnés par argument. La _getche fonction est utilisée pour lire les caractères. Chaque paramètre facultatif doit être un pointeur désignant une variable dont le type correspond à un spécificateur de type dans format. Le format contrôle l’interprétation des champs d’entrée et a le même formulaire et fonction que le format paramètre de la scanf_s fonction. Alors qu’il _cscanf_s fait normalement écho au caractère d’entrée, il ne le fait pas si le dernier appel était à _ungetch.

Comme d’autres versions sécurisées de fonctions dans la scanf famille et _cscanf_s_cwscanf_s nécessitent des arguments de taille pour les caractères de champ de type c, C, s, S et [. Pour plus d’informations, consultez Spécification de largeur scanf.

Remarque

Le paramètre relatif à la taille est de type unsigned, et non 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.

Mappages de routine de texte générique

Routine TCHAR.H _UNICODE et _MBCS non défini _MBCS Défini _UNICODE Défini
_tcscanf_s _cscanf_s _cscanf_s _cwscanf_s
_tcscanf_s_l _cscanf_s_l _cscanf_s_l _cwscanf_s_l

Spécifications

Routine En-tête requis
_cscanf_s, _cscanf_s_l <conio.h>
_cwscanf_s, _cwscanf_s_l <conio.h> ou <wchar.h>

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

Bibliothèques

Toutes les versions des bibliothèques Runtime C.

Exemple

// crt_cscanf_s.c
// compile with: /c
/* This program prompts for a string
* and uses _cscanf_s to read in the response.
* Then _cscanf_s returns the number of items
* matched, and the program displays that number.
*/

#include <stdio.h>
#include <conio.h>

int main( void )
{
   int result, n[3];
   int i;

   result = _cscanf_s( "%i %i %i", &n[0], &n[1], &n[2] );
   _cprintf_s( "\r\nYou entered " );
   for( i=0; i<result; i++ )
      _cprintf_s( "%i ", n[i] );
   _cprintf_s( "\r\n" );
}
1 2 3
You entered 1 2 3

Voir aussi

E/S de console et de port
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l
scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l
sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l