_cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l

 

Date de publication : juillet 2016

Pour obtenir la dernière documentation sur Visual Studio 2017 RC, consultez Documentation Visual Studio 2017 RC.

Lit les données mises en forme depuis la console. Ces versions plus sécurisées de _cscanf, _cscanf_l, _cwscanf, _cwscanf_l présentent des améliorations de sécurité, comme décrit dans Fonctionnalités de sécurité dans le CRT.

System_CAPS_ICON_important.jpg 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 avec /ZW.

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.

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 non assignés. La valeur de retour est EOF pour une tentative de lire à la fin du fichier. Cela peut se produire lorsque l'entrée au clavier est redirigée au niveau ligne de commande du système d'exploitation. La valeur de retour 0 signifie qu'aucun champ n'a été assigné.

Ces fonctions valident leurs paramètres. Si format est un pointeur null, ces fonctions invoquent le gestionnaire de paramètres non valides, comme décrit dans Validation de paramètre Si l'exécution est autorisée à se poursuivre, ces fonctions retournent EOF et errnoest défini comme EINVAL.

La fonction _cscanf_s lit les données directement de la console dans les emplacements spécifiés par argument. La fonction _getche est utilisée pour lire des caractères. Chaque paramètre optionnel doit être un pointeur vers 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 les mêmes formulaire et fonction que le paramètre format pour la fonction https://msdn.microsoft.com/fr-fr/library/9y6s16x1.aspx . Bien que _cscanf_s répercute normalement le caractère d'entrée, il ne le fait pas si le dernier appel a la valeur _ungetch.

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

System_CAPS_ICON_note.jpg Remarque

Le paramètre size est de type unsigned, et non du type 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 routines de texte générique

Routine TCHAR.H_UNICODE et _MBCS non définis_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
RoutineEn-tête requis
_cscanf_s,_cscanf_s_l<conio.h>
_cwscanf_s, _cwscanf_s_l<conio.h> or <wchar.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité.

Toutes les versions des bibliothèques Runtime C.

// 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  

Console et port E/S
_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

Afficher: