_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
_cwscanf
ont _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 EOF
et 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 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 |
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