Partager via


_cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l

Données mises en forme lues dans la console.Ce sont des versions plus sûres de _cscanf, _cscanf_l, _cwscanf, _cwscanf_l avec des améliorations de sécurité comme décrit dans Fonctionnalités de sécurité du CRT.

Important

Cette API ne peut pas être utilisée dans les applications qui s'exécutent dans les fenêtres d'exécution.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 format.

  • argument
    Paramètres facultatifs.

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

Valeur de retour

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

Ces fonctions valident leurs paramètres.Si format est un pointeur null, ces fonctions appelle le gestionnaire de paramètre non valide, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution pour continuer, ces fonctions EOF de retour et errnoest définie à EINVAL.

Notes

La fonction d' _cscanf_s lit des données directement de la console dans les emplacements spécifiés par argument.La fonction d' _getche est utilisée pour lire des caractères.Chaque paramètre optionnel doit être un pointeur vers une variable avec un type qui correspond à un spécificateur de type dans format.Les contrôles de format la traduction des champs d'entrée et a la même forme et fonction de le paramètre d' format pour la fonction d' scanf_s .Pendant qu' _cscanf_s répercute normalement le caractère d'entrée, ce n'est pas si le dernier appel à a été _ungetch.

Comme d'autres versions sécurisées des fonctions dans la famille d'scanf,_cscanf_s et _cswscanf_s requièrent des arguments de taille pour le type caractères de champ c, C, s, S, et [.Pour plus d'informations, consultez spécification de la largeur de scanf.

[!REMARQUE]

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

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

Mappages de routines de texte générique

Routine de TCHAR.H

_UNICODE et non définis _MBCS

_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

Configuration requise

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 de compatibilité, consultez l' Compatibilité dans l'introduction.

Bibliothèques

Toutes les versions d' 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" );
}

Entrée

1 2 3

Sortie

You entered 1 2 3

Voir aussi

Référence

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